diff --git a/components/auth-form/index.js b/components/auth-form/index.js new file mode 100644 index 0000000..559727b --- /dev/null +++ b/components/auth-form/index.js @@ -0,0 +1,214 @@ +/* eslint-disable camelcase */ +import PropTypes from 'prop-types' +import Link from 'next/link' +import {useState} from 'react' +import Button from '@mui/material/Button' +import Container from '@mui/material/Container' +import Box from '@mui/material/Box' +import Typography from '@mui/material/Typography' +import InputAdornment from '@mui/material/InputAdornment' +import IconButton from '@mui/material/IconButton' +import FormControl from '@mui/material/FormControl' +import FormHelperText from '@mui/material/FormHelperText' +import OutlinedInput from '@mui/material/OutlinedInput' +import InputLabel from '@mui/material/InputLabel' +import Visibility from '@mui/icons-material/Visibility' +import VisibilityOff from '@mui/icons-material/VisibilityOff' + +export default function AuthForm({ + title, + buttonText, + onSubmit, + linkText, + linkHref, + linkDescription, + isRegister +}) { + const [formData, setFormData] = useState({ + first_name: '', + email: '', + password: '', + password_verification: '' + }) + + const [showPassword, setShowPassword] = useState(false) + const [showPasswordVerification, setShowPasswordVerification] = useState(false) + + const handleFormSubmit = async e => { + e.preventDefault() + onSubmit(formData) + } + + const handleInputChange = e => { + setFormData({ + ...formData, + [e.target.name]: e.target.value, + }) + } + + const handleClickShowPassword = () => { + setShowPassword(!showPassword) + } + + const handleMouseDownPassword = event => { + event.preventDefault() + } + + const handleClickShowPasswordVerifiation = () => { + setShowPasswordVerification(!showPasswordVerification) + } + + const handleMouseDownPasswordVerification = event => { + event.preventDefault() + } + + return ( + + + + {title} + + {isRegister && ( + + Pseudo + + + )} + + E-mail + + + + Mot de passe + + + {showPassword ? : } + + + } + value={formData.password} + onChange={handleInputChange} + /> + + {isRegister && ( + + Vérification du mot de passe + + + {showPasswordVerification ? : } + + + } + onChange={handleInputChange} + /> + {formData.password !== formData.password_verification && ( + Les mots de passe ne correspondent pas ! + )} + + )} + + + {linkDescription}{' '} + + + + + {!isRegister && ( + + + Mot de passe oublié + + + )} + + + + Retourner à l’accueil + + + + ) +} + +AuthForm.propTypes = { + title: PropTypes.string.isRequired, + buttonText: PropTypes.string.isRequired, + onSubmit: PropTypes.func.isRequired, + linkText: PropTypes.string.isRequired, + linkHref: PropTypes.string.isRequired, + linkDescription: PropTypes.string.isRequired, + isRegister: PropTypes.bool.isRequired +}