'use client'
import PropTypes from 'prop-types'
import {useState} from 'react'
import {passwordReset} from '@directus/sdk'
import {useRouter} from 'next/navigation'
import Typography from '@mui/material/Typography'
import Container from '@mui/material/Container'
import Box from '@mui/material/Box'
import FormControl from '@mui/material/FormControl'
import InputLabel from '@mui/material/InputLabel'
import OutlinedInput from '@mui/material/OutlinedInput'
import InputAdornment from '@mui/material/InputAdornment'
import IconButton from '@mui/material/IconButton'
import Button from '@mui/material/Button'
import FormHelperText from '@mui/material/FormHelperText'
import Visibility from '@mui/icons-material/Visibility'
import VisibilityOff from '@mui/icons-material/VisibilityOff'
import {directusClient} from '@/lib/directus.js'
import AuthAlert from '@/components/auth-form/auth-alert.js'
export default function RequestResetForm({token}) {
const [isOpen, setIsOpen] = useState(false)
const [newPassword, setNewPassword] = useState('')
const [newPasswordVerification, setNewPasswordVerification] = useState('')
const [showPassword, setShowPassword] = useState(false)
const [showPasswordVerification, setShowPasswordVerification] = useState(false)
const [success, setSuccess] = useState('')
const [error, setError] = useState('')
const reset_token = token // eslint-disable-line camelcase
const router = useRouter()
const handleClickShowPassword = () => {
setShowPassword(!showPassword)
}
const handleMouseDownPassword = event => {
event.preventDefault()
}
const handleClickShowPasswordVerifiation = () => {
setShowPasswordVerification(!showPasswordVerification)
}
const handleMouseDownPasswordVerification = event => {
event.preventDefault()
}
const handleFormSubmit = async e => {
e.preventDefault()
try {
await directusClient.request(
passwordReset(reset_token, newPassword)
)
setSuccess('Mot de passe réinitialisé avec succès, redirection vers la page de connexion...')
setIsOpen(true)
setTimeout(() => {
router.push('/login')
}, 1000)
} catch (error) {
console.log(error)
setError('Le jeton de réinitialisation du mot de passe n’est pas valide, veuillez demander un nouveau lien de réinitialisation du mot de passe !')
setIsOpen(true)
}
}
return (
<>
{error && }
{success && }
Fournir un nouveau mot de passe pour votre compte
Entrez votre nouveau mot de passe pour votre compte
Mot de passe
{showPassword ? : }
}
value={newPassword}
onChange={e => setNewPassword(e.target.value)}
/>
Vérification du mot de passe
{showPasswordVerification ? : }
}
onChange={e => setNewPasswordVerification(e.target.value)}
/>
{newPassword !== newPasswordVerification && (
Les mots de passe ne correspondent pas !
)}
>
)
}
RequestResetForm.propTypes = {
token: PropTypes.string.isRequired
}