import { actionFullLogin } from '../actions/actionLogin'; import TextField from '@mui/material/TextField'; import { IconButton, InputAdornment, Typography } from '@mui/material'; import {BrowserRouter as Router, Link,} from 'react-router-dom'; import { useState, useEffect } from 'react'; import { Visibility, VisibilityOff } from '@mui/icons-material'; import Button from '@mui/material/Button'; import { connect } from 'react-redux'; function LoginPage({onLogin }){ const [values, setValues] = useState({ login: '', password: '', showPassword: false, }) const [errorValues, setErrorValues] = useState({ login: '', firstPassword: '', }) useEffect(() => { if(Object.values(errorValues).every(item => item === false)) { onLogin(values.login, values.password) } }, [errorValues]) function validatePassword(fp,l) { let e = { login: '', firstPassword: '', } let errorsP = []; let errorsL = []; if (fp.length < 4 || fp.length > 12) { errorsP.push("Your password must be at least 4 and no more than 12 characters"); } if (!/[a-z]/.test(fp)) { errorsP.push("Your password must contain at least one letter."); } if (!/[0-9]/.test(fp)) { errorsP.push("Your password must contain at least one digit."); } if (errorsP.length > 0) { e = {...e, firstPassword: errorsP.join('/')} } else { e = {...e, firstPassword: false} } if(!/[a-z]/.test(l)){ errorsL.push("Your login must contain at least one letter"); } if (l.length < 4 || l.length > 8) { errorsL.push("Your login must be at least 4 and no more than 8 characters"); } if (errorsL.length > 0){ e = {...e, login: errorsL.join('/')} } else { e = {...e, login: false} } setErrorValues({...errorValues, ...e}) } const handleChange = (prop) => (event) => { setValues({...values, [prop] : event.target.value}) } const handleClickShowPassword = () => { setValues({ ...values, showPassword: !values.showPassword }) } return (
Login event.preventDefault()} edge="end" > {values.showPassword ? : } ) }} />
Registration
) } export default connect(null, {onLogin: actionFullLogin})(LoginPage)