source: phonelux-frontend/src/components/LoginRegisterComponents/RegisterFormComponent.js@ 527b93f

Last change on this file since 527b93f was dbd4834, checked in by Marko <Marko@…>, 22 months ago

Homepage, login and register components added

  • Property mode set to 100644
File size: 4.0 KB
Line 
1import React, { Component } from 'react'
2import profileIcon from "../../images/profileicon.png";
3import "./RegisterFormComponent.css"
4import ErrorIcon from '@mui/icons-material/Error';
5import CheckBoxIcon from '@mui/icons-material/CheckBox';
6import InputFormComponent from './InputFormComponent';
7import { Input } from '@mui/material';
8import axios from 'axios';
9
10
11export class RegisterFormComponent extends Component {
12
13 constructor(props) {
14 super(props)
15
16 this.state = {
17 firstName: '',
18 lastName: '',
19 email: '',
20 password: '',
21 confirmPassword:'',
22 }
23 }
24
25 submitHandler = (e) => {
26 e.preventDefault()
27
28 let dataToSend = JSON.stringify({
29 "firstName": this.state.firstName,
30 "lastName": this.state.lastName,
31 "email": this.state.email,
32 "password": this.state.password
33 });
34
35 let config = {
36 method: 'post',
37 url: '/registration',
38 headers: {
39 'Content-Type': 'application/json'
40 },
41 data : dataToSend
42 };
43
44 axios(config)
45 .then(function (response) {
46 console.log(response);
47 })
48 .catch(function (error) {
49 console.log(error);
50 });
51
52 }
53
54 setValue = (e) => {
55 this.setState({
56 [e.target.name]: e.target.value
57 })
58 }
59
60
61
62
63 render() {
64
65 const {firstName,lastName,email,password,confirmPassword} = this.state
66
67 return (
68 <div className="registerform-main-div">
69 <div className="registerform-sub-main-div">
70 <div>
71
72 <div className="registerform-imgs-div">
73 <div className="registerform-image-container">
74 <img src={profileIcon} alt="profile" className="registerform-profile-img"/>
75 </div>
76 </div>
77
78 <form onSubmit={this.submitHandler}>
79 <h1>Регистрација</h1>
80
81 <div className='registerform-name-lastname'>
82 <InputFormComponent type='text' placeholder='Име' name='firstName' required={true}
83 setValue={this.setValue} errorMessage='Името е задолжително!'/>
84
85 <InputFormComponent type='text' placeholder='Презиме' name='lastName' required={true}
86 setValue={this.setValue} errorMessage='Презимето е задолжително!'/>
87 </div>
88
89 <div className='registerform-email-input'>
90 <InputFormComponent type='email' placeholder='Е-маил адреса' name='email' required={true}
91 setValue={this.setValue} errorMessage='Погрешен формат на е-маил адреса!'/>
92 </div>
93
94 <div className="registerform-password-input">
95 <InputFormComponent type='password' placeholder='Лозинка' name='password'
96 setValue={this.setValue} pattern='^(?=.*[0-9])(?=.*[A-Z])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{8,}$' required={true}
97 errorMessage='Лозинката мора да има должина најмалку 8 карактери,
98 да содржи најмалку една голема буква, еден број и еден посебен знак!'/>
99 </div>
100
101 <div className="registerform-confirm-password-input">
102 <InputFormComponent type='password' placeholder='Потврди лозинка' name='confirmPassword' required={true}
103 pattern={this.state.password}
104 setValue={this.setValue} errorMessage='Лозинките не се исти!'/>
105 </div>
106
107 <div className="registerform-button-wrapper">
108 <button className='registerform-button' type="submit">Регистрирај се</button>
109 </div>
110
111 </form>
112
113 </div>
114
115 </div>
116 </div>
117 );
118 }
119}
120
121export default RegisterFormComponent
Note: See TracBrowser for help on using the repository browser.