diff --git a/app/reset-password/form.js b/app/reset-password/form.js
new file mode 100644
index 0000000..2b220c8
--- /dev/null
+++ b/app/reset-password/form.js
@@ -0,0 +1,171 @@
+'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
+}
diff --git a/app/reset-password/page.js b/app/reset-password/page.js
new file mode 100644
index 0000000..f97a2a1
--- /dev/null
+++ b/app/reset-password/page.js
@@ -0,0 +1,18 @@
+import PropTypes from 'prop-types'
+import {redirect} from 'next/navigation'
+import ResetPasswordForm from './form.js'
+
+export default async function ResetPasswordPage({searchParams}) {
+ console.log('searchParams', searchParams)
+ const {token} = searchParams
+
+ if (!token) {
+ redirect('/login')
+ }
+
+ return ()
+}
+
+ResetPasswordPage.propTypes = {
+ searchParams: PropTypes.object
+}