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

Last change on this file was 47f4eaf, checked in by Marko <Marko@…>, 20 months ago

Final features implemented

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