From 6badff38afb2a77520d6c982ecd709df80230b46 Mon Sep 17 00:00:00 2001 From: Valentin ROBIN Date: Fri, 21 Aug 2026 17:26:24 +0200 Subject: [PATCH] =?UTF-8?q?D=C3=A9sactive=20le=20bouton=20d'enregistrement?= =?UTF-8?q?=20de=20la=20question=20quand=20rien=20n'a=20chang=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajoute un suivi de la dernière valeur sauvegardée (comme le pattern déjà utilisé dans admin-members-table.tsx et profile-form.tsx) : le bouton "Enregistrer" se grise et affiche "Déjà enregistrée" tant que le texte n'a pas été modifié depuis la dernière sauvegarde, dès le chargement de la page si la question n'a pas bougé. --- src/app/profile/chariot-submission-form.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/app/profile/chariot-submission-form.tsx b/src/app/profile/chariot-submission-form.tsx index 6a508da..2f6e21f 100644 --- a/src/app/profile/chariot-submission-form.tsx +++ b/src/app/profile/chariot-submission-form.tsx @@ -13,6 +13,7 @@ export function ChariotSubmissionForm({ frozen: boolean; }) { const [text, setText] = useState(initialText); + const [savedText, setSavedText] = useState(initialText); const [saving, setSaving] = useState(false); const [error, setError] = useState(null); const [success, setSuccess] = useState(false); @@ -28,6 +29,8 @@ export function ChariotSubmissionForm({ ); } + const dirty = text.trim() !== savedText; + async function handleSubmit(event: FormEvent) { event.preventDefault(); setError(null); @@ -48,6 +51,7 @@ export function ChariotSubmissionForm({ setError("Une erreur est survenue, réessaie."); return; } + setSavedText(trimmed); setSuccess(true); } @@ -73,14 +77,14 @@ export function ChariotSubmissionForm({ {error}

)} - {success &&

Question enregistrée.

} + {success && !dirty &&

Question enregistrée.

} );