import axios from "axios"; import delve from "dlv"; import {useState} from "react"; import {SubmitHandler, useForm} from "react-hook-form"; import SeoConfig from "../../components/seo-config/seo-config"; import Layout from "../../components/layout/layout"; import {environment} from "../../environments/environment"; import {LostPasswordInputs} from "../../libs/api"; import {lostPasswordStrapi} from "../../libs/auth"; import styles from "../sign-up/index.module.scss"; const getPageMetadata = async (path) => { try { return await axios.get(`${environment.strapiApiUrl}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); } catch (e) { console.error(e); return Promise.resolve({}) } } export const getServerSideProps = async (context) => { const path = context.resolvedUrl; const menuHeader = await axios.get(`${environment.strapiApiUrl}/menus/1?nested&populate=deep`); const menuFooter = await axios.get(`${environment.strapiApiUrl}/menus/2?nested&populate=deep`); const page = await getPageMetadata(path); return { props: { menuHeaders: delve(menuHeader, 'data.data.attributes.items.data', []), menuFooter: delve(menuFooter, 'data.data.attributes.items.data', []), page: delve(page, "data.data.0.attributes", {}), seo: delve(page, "data.data.0.attributes.seo", {}) } } } export function LostPassword({menuHeaders, menuFooter, page, seo}) { const {register, handleSubmit, formState: {errors}} = useForm({ defaultValues: { email: "" } }); const [isSent, setIsSent] = useState(null); const onSubmit: SubmitHandler = async (data: LostPasswordInputs) => { try { const result = await lostPasswordStrapi({email: data.email}); setIsSent(result); } catch (e) { setIsSent(false); } } const hasErrors = () => Object.keys(errors).length > 0; const isBoolean = (val) => typeof val === "boolean"; return ( <>

Mot de passe oublié

Veuillez saisir votre addresse email ci-dessous et nous vous enverrons un courriel pour changer votre mot de passe.

{isBoolean(isSent) && isSent ? (
Email envoyé ! Vérifiez votre boite de réception ou vos courrier indésirables.
) : ('')} {isBoolean(isSent) && !isSent ? (
Oups ! Une erreur est survenue durant l'envoi de l'email. Rapprochez vous de nos équipes pour en savoir plus.
) : ('')}
{errors.email && (

{errors.email.message}

)}
Phone image
); } export default LostPassword;