Dev #1

Merged
jessy-david-dev merged 7 commits from dev into main 2026-01-27 17:08:37 +00:00
Showing only changes of commit 301b1d876e - Show all commits
+29
View File
@@ -291,6 +291,35 @@ export default function Contact() {
/>
</div>
{/* Consentement RGPD */}
<div className="flex items-start gap-3">
<input
type="checkbox"
id="rgpd-consent"
name="rgpd-consent"
required
disabled={isSubmitting}
className="mt-1 w-4 h-4 rounded border-slate-600 bg-slate-900/50 text-blue-500 focus:ring-blue-500 focus:ring-offset-0 cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed"
/>
<label
htmlFor="rgpd-consent"
className="text-sm text-slate-400 cursor-pointer"
>
J&apos;accepte que mes données personnelles (nom, email,
message) soient collectées et traitées pour répondre à ma
demande, conformément à la{" "}
<a
href="/politique-de-confidentialite"
target="_blank"
rel="noopener noreferrer"
className="text-blue-400 hover:text-blue-300 underline transition-colors"
>
Politique de Confidentialité
</a>
. *
</label>
</div>
copilot-pull-request-reviewer[bot] commented 2026-01-27 17:12:41 +00:00 (Migrated from github.com)
Review

Le checkbox "Consentement RGPD" est bien required côté UI, mais sa valeur n’est jamais lue dans handleSubmit (seuls name/email/message/captchaToken sont envoyés). Du coup, le backend ne peut pas tracer/valider le consentement (et un appel direct à /api/contact peut contourner la contrainte). Solution : inclure explicitement un champ de consentement (ex: booléen dérivé de formData.get(...)) dans le payload, et le valider côté API.

Le checkbox "Consentement RGPD" est bien `required` côté UI, mais sa valeur n’est jamais lue dans `handleSubmit` (seuls `name/email/message/captchaToken` sont envoyés). Du coup, le backend ne peut pas tracer/valider le consentement (et un appel direct à `/api/contact` peut contourner la contrainte). Solution : inclure explicitement un champ de consentement (ex: booléen dérivé de `formData.get(...)`) dans le payload, et le valider côté API.
{/* Message d'erreur */}
{error && (
<motion.div