import { useRouter } from "next/router"; import { useState } from "react"; import { InsetBox } from "components/InsetBox"; import { PostPage } from "components/PostPage"; import { getPostStaticProps, PostStaticProps } from "graphql/getPostStaticProps"; import { cIf, cJoin } from "helpers/className"; import { randomInt } from "helpers/numbers"; import { RequestMailProps, ResponseMailProps } from "pages/api/mail"; import { useIs1ColumnLayout } from "hooks/useContainerQuery"; import { useAppLayout } from "contexts/AppLayoutContext"; import { sendAnalytics } from "helpers/analytics"; /* * ╭────────╮ * ──────────────────────────────────────────╯ PAGE ╰───────────────────────────────────────────── */ const AboutUs = (props: PostStaticProps): JSX.Element => { const router = useRouter(); const { langui } = useAppLayout(); const is1ColumnLayout = useIs1ColumnLayout(); const [formResponse, setFormResponse] = useState(""); const [formState, setFormState] = useState<"completed" | "ongoing" | "stale">("stale"); const [randomNumber1, setRandomNumber1] = useState(randomInt(0, 10)); const [randomNumber2, setRandomNumber2] = useState(randomInt(0, 10)); const contactForm = (
{ event.preventDefault(); const fields = event.target as unknown as { verif: HTMLInputElement; name: HTMLInputElement; email: HTMLInputElement; message: HTMLInputElement; }; setFormState("ongoing"); if ( parseInt(fields.verif.value, 10) === randomNumber1 + randomNumber2 && formState !== "completed" ) { const content: RequestMailProps = { name: fields.name.value, email: fields.email.value, message: fields.message.value, formName: "Contact Form", }; fetch("/api/mail", { method: "POST", body: JSON.stringify(content), headers: { "Content-type": "application/json; charset=UTF-8", }, }) .then(async (responseJson) => responseJson.json()) .then((response: ResponseMailProps) => { switch (response.code) { case "OKAY": setFormResponse(langui.response_email_success ?? ""); setFormState("completed"); sendAnalytics("Contact", "Send email (success)"); break; case "EENVELOPE": setFormResponse(langui.response_invalid_email ?? ""); setFormState("stale"); sendAnalytics("Contact", "Send email (invalid email)"); break; default: setFormResponse(response.message ?? ""); setFormState("stale"); sendAnalytics("Contact", "Send email (error)"); break; } }); } else { setFormResponse(langui.response_invalid_code ?? ""); setFormState("stale"); setRandomNumber1(randomInt(0, 10)); setRandomNumber2(randomInt(0, 10)); } router.replace("#send-response"); fields.verif.value = ""; }}>

{langui.email_gdpr_notice}