import React from 'react'
import { connect } from 'react-redux'
import { Redirect } from 'react-router'
import { translate } from 'react-i18next'
import LoginLogo from '../component/Login/LoginLogo.jsx'
import LoginLogoImg from '../img/logoTracimWhite.svg'
import { postUserLogin } from '../action-creator.async.js'
import Card from '../component/common/Card/Card.jsx'
import CardHeader from '../component/common/Card/CardHeader.jsx'
import CardBody from '../component/common/Card/CardBody.jsx'
import InputGroupText from '../component/common/Input/InputGroupText.jsx'
import InputCheckbox from '../component/common/Input/InputCheckbox.jsx'
import Button from '../component/common/Input/Button.jsx'
import LoginBtnForgotPw from '../component/Login/LoginBtnForgotPw.jsx'
import {
newFlashMessage,
setUserConnected
} from '../action-creator.sync.js'
import {PAGE} from '../helper.js'
class Login extends React.Component {
constructor (props) {
super(props)
this.state = {
inputLogin: {
value: '',
isInvalid: false
},
inputPassword: {
value: '',
isInvalid: false
},
inputRememberMe: false
}
}
handleChangeLogin = e => this.setState({inputLogin: {...this.state.inputLogin, value: e.target.value}})
handleChangePassword = e => this.setState({inputPassword: {...this.state.inputPassword, value: e.target.value}})
handleChangeRememberMe = () => this.setState(prev => ({inputRememberMe: !prev.inputRememberMe}))
handleClickSubmit = async () => {
const { history, dispatch, t } = this.props
const { inputLogin, inputPassword, inputRememberMe } = this.state
const fetchPostUserLogin = await dispatch(postUserLogin(inputLogin.value, inputPassword.value, inputRememberMe))
if (fetchPostUserLogin.status === 200) {
dispatch(setUserConnected({...fetchPostUserLogin.json, logged: true}))
history.push(PAGE.HOME)
} else if (fetchPostUserLogin.status === 400) {
dispatch(newFlashMessage(t('Login.fail'), 'danger'))
}
}
render () {
if (this.props.user.logged) return
else {
return (
)
}
}
}
const mapStateToProps = ({ user }) => ({ user })
export default connect(mapStateToProps)(translate()(Login))