1- import React , { useState } from "react" ;
1+ import React , { useState , useEffect } from "react" ;
22import "./Login.css" ;
33import LoginForm from "./LoginForm/LoginForm" ;
44import bubbleimage from "./../../assets/placeholders/bubble-image.png" ;
5- import * as LoginServices from "./../../api/LoginServices" ;
5+ // import * as LoginServices from "./../../api/LoginServices";
6+ import { connect } from "react-redux" ;
7+ import * as validateUser from "./loginActions" ;
8+ import { bindActionCreators } from "redux" ;
69
710function Login ( props ) {
811 const [ user , setUser ] = useState ( { userId : "" , password : "" } ) ;
@@ -15,18 +18,31 @@ function Login(props) {
1518 } ) ;
1619 } ;
1720
21+ useEffect ( ( ) => {
22+ if ( props . user . id !== "" ) {
23+ props . history . push ( "/feeds" ) ;
24+ }
25+ if ( props . user . error !== "" ) {
26+ updateErrorMessage ( ) ;
27+ }
28+ } , [ props . history , props . user ] ) ;
29+
30+ const updateErrorMessage = ( ) => {
31+ setError ( "Invalid User naem or Password, please try again !" ) ;
32+ } ;
33+
1834 const handleSubmit = ( event ) => {
1935 event . preventDefault ( ) ;
20- console . log ( user ) ;
21- LoginServices . validateUser ( user . userId , user . password ) . then ( ( response ) => {
22- console . log ( response ) ;
23- if ( ! response . error ) {
24- props . history . push ( "/feeds" ) ;
25- } else {
26- setError ( "Invalid User naem or Password, please try again !" ) ;
27- // TODO: Need to display error message
28- }
29- } ) ;
36+ // LoginServices.validateUser (user.userId, user.password).then((response) => {
37+ // console.log( response);
38+ // if (! response.error) {
39+ // props.history.push("/feeds");
40+ // } else {
41+ // setError("Invalid User naem or Password, please try again !");
42+ // // TODO: Need to display error message
43+ // }
44+ // });
45+ props . actions . validateUser ( user ) ;
3046 } ;
3147
3248 return (
@@ -48,4 +64,16 @@ function Login(props) {
4864 ) ;
4965}
5066
51- export default Login ;
67+ function mapStateToProps ( state ) {
68+ return {
69+ user : state . user ,
70+ } ;
71+ }
72+
73+ function mapDispatchToProps ( dispatch ) {
74+ return {
75+ actions : bindActionCreators ( validateUser , dispatch ) ,
76+ } ;
77+ }
78+
79+ export default connect ( mapStateToProps , mapDispatchToProps ) ( Login ) ;
0 commit comments