source: phonelux-frontend/src/components/LoginRegisterComponents/LoginFormComponent.js@ 775e15e

Last change on this file since 775e15e was e5b84dc, checked in by Marko <Marko@…>, 22 months ago

Prototype version

  • Property mode set to 100644
File size: 3.0 KB
Line 
1import React, { Component } from 'react'
2import profileIcon from "../../images/profileicon.png";
3import EmailIcon from '@mui/icons-material/Email';
4import "./LoginFormComponent.css"
5import InputFormComponent from './InputFormComponent';
6import { Link } from 'react-router-dom';
7import axios from 'axios';
8
9
10
11export class LoginFormComponent extends Component {
12
13 constructor(props) {
14 super(props)
15
16 this.state = {
17 email: '',
18 password: '',
19 serverResponse: ''
20 }
21 }
22
23 changeHandler = (e) =>{
24 this.setState({[e.target.name] : e.target.value})
25 }
26
27 submitHandler = (e) => {
28 e.preventDefault()
29 var qs = require('qs');
30 var dataToSend = qs.stringify({
31 'email': this.state.email,
32 'password': this.state.password
33 });
34
35 var config = {
36 method: 'post',
37 url: '/login',
38 headers: {
39 'Content-Type': 'application/x-www-form-urlencoded'
40 },
41 data : dataToSend
42 };
43
44 axios(config)
45 .then((response) => {
46 // store access token in local storage, redirect to homepage
47 console.log(response.data)
48 })
49 .catch((error) => {
50 this.setState({
51 serverResponse: 'error'
52 })
53 });
54
55 }
56
57 setValue = (e) => {
58 this.setState({
59 [e.target.name]: e.target.value
60 })
61
62 }
63
64
65render() {
66
67 const {email,password} = this.state
68
69 return (
70 <div className="loginform-main-div">
71 <div className="loginform-sub-main-div">
72 <div>
73 {this.state.serverResponse == 'error' ? <div className='loginform-message-wrapper'>
74 <h5 className='loginform-error-message'>Невалидна е-маил адреса или лозинка!</h5></div> : <></>}
75 <div className="loginform-imgs-div">
76 <div className="loginform-image-container">
77 <img src={profileIcon} alt="profile" className="loginform-profile-img"/>
78 </div>
79 </div>
80
81 <form onSubmit={this.submitHandler}>
82 <h1>Најава</h1>
83
84 <div className='loginform-email-input'>
85 <InputFormComponent type='text' placeholder='Е-маил адреса' name='email' required={true}
86 setValue={this.setValue} errorMessage='Полето е задолжително!'/>
87 </div>
88
89 <div className="loginform-password-input">
90 <InputFormComponent type='password' placeholder='Лозинка' name='password'
91 setValue={this.setValue} required={true}
92 errorMessage='Полето е задолжително!'/>
93 </div>
94
95
96 <div className="loginform-button-wrapper">
97 <button className='loginform-button' type="submit">Најави се</button>
98 </div>
99 </form>
100 <p className='register-link'><Link className='registerform-link' to={"/register"}>Регистрирај се</Link></p>
101
102 </div>
103
104 </div>
105 </div>
106 );
107}
108}
109
110export default LoginFormComponent
Note: See TracBrowser for help on using the repository browser.