Login.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import React from "react";
  2. import {connect} from 'react-redux';
  3. import {useState} from "react";
  4. import {actionFullLogin} from '../actions'
  5. import Button from "../Components/Button";
  6. import LoginError from "../Components/RegErrors/LoginError";
  7. import showPwdImg from '../images/3844476-eye-see-show-view-watch_110339.svg';
  8. import hidePwdImg from '../images/3844477-disable-eye-inactive-see-show-view-watch_110343.svg';
  9. import {Link, useHistory} from 'react-router-dom';
  10. import { Container } from "react-bootstrap";
  11. const LoginForm = ({onLogin,loggedIn}) => {
  12. const [login,setLogin] = useState('')
  13. const [password,setPassword] = useState('')
  14. const [open,setOpen] = useState(false)
  15. const[show,setShow]=useState(false)
  16. let history = useHistory()
  17. if(localStorage.authToken) {
  18. history.push('/')
  19. }
  20. const isLoginValid = () => {
  21. if(!login || !password) {
  22. return false
  23. }
  24. else return true
  25. }
  26. const loginCallback = () => {
  27. if(isLoginValid()) {
  28. onLogin(login, password)
  29. }
  30. else {
  31. setShow(true)
  32. }
  33. }
  34. return (
  35. <div className="divLogin mt-5">
  36. <h4>Войти</h4>
  37. <div className="login-container">
  38. <label>Логин</label>
  39. <input value={login} onChange={e => setLogin(e.target.value)} placeholder="Логин"></input>
  40. </div>
  41. <div className='pwd-container'>
  42. <label>Ваш текущий пароль от olx</label>
  43. <input value={password} type={open ? "text" : "password"} onChange={e => setPassword(e.target.value)} placeholder="Пароль" />
  44. <img src={open ? hidePwdImg : showPwdImg} onClick={() => setOpen(!open)}/>
  45. </div>
  46. <div className='login-container'>
  47. Не зарегистрированы? <Link to='sign' className='mb-3'>Создать аккаунт</Link>
  48. <Button name='Войти' isValid={isLoginValid()} callback={loginCallback} />
  49. </div>
  50. {(loggedIn === null) && <p>Неверный логин или пароль</p>}
  51. {show && (!login || !password) && <LoginError />}
  52. </div>
  53. )
  54. }
  55. const ConnectLog = connect(state => ({loggedIn: state.promiseReducer?.login?.payload}), {onLogin: actionFullLogin})(LoginForm)
  56. export default ConnectLog