import React from 'react' import { connect } from 'react-redux' import { Redirect } from 'react-router' import { translate } from 'react-i18next' import Cookies from 'js-cookie' 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 Button from '../component/common/Input/Button.jsx' import LoginBtnForgotPw from '../component/Login/LoginBtnForgotPw.jsx' import { newFlashMessage, setUserConnected } from '../action-creator.sync.js' import { COOKIE, 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)) const userAuth = btoa(`${inputLogin.value}:${inputPassword.value}`) if (fetchPostUserLogin.status === 200) { dispatch(setUserConnected({ ...fetchPostUserLogin.json, auth: userAuth, logged: true })) Cookies.set(COOKIE.USER_LOGIN, inputLogin.value) Cookies.set(COOKIE.USER_AUTH, userAuth) history.push(PAGE.HOME) } else if (fetchPostUserLogin.status === 400) { dispatch(newFlashMessage(t('Email or password invalid'), 'danger')) } } render () { if (this.props.user.logged) return else { return (
{'Connexion'}
{/* */}
) } } } const mapStateToProps = ({ user }) => ({ user }) export default connect(mapStateToProps)(translate()(Login))