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}