From 85edf9ce2a6dca6e4154d6d40f7947235cfb66b7 Mon Sep 17 00:00:00 2001 From: IliesAllali Date: Mon, 19 Oct 2026 00:09:33 +0200 Subject: [PATCH] =?UTF-8?q?fix(fiche):=20un=20champ=20vid=C3=A9=20pendant?= =?UTF-8?q?=20la=20saisie=20reste=20affich=C3=A9=20jusqu'=C3=A0=20l'enregi?= =?UTF-8?q?strement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Avec l'onglet Infos qui n'affiche que les champs remplis (#93), vider un champ pour le retaper le faisait disparaître sous les doigts, et la frappe partait dans le champ suivant. Co-Authored-By: Claude Opus 5.5 --- frontend/src/components/PersonCard.jsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/PersonCard.jsx b/frontend/src/components/PersonCard.jsx index 04c8aff..b4cd7c0 100644 --- a/frontend/src/components/PersonCard.jsx +++ b/frontend/src/components/PersonCard.jsx @@ -277,7 +277,9 @@ const PersonCard = ({ // Onglet Infos en modification : seuls les champs remplis (ou ouverts) s'affichent, le reste est en pastilles const isFilled = (value) => value !== null && value !== undefined && String(value).trim() !== '' - const openedHas = (field) => openedFields.includes(field) + // Un champ ouvert par sa pastille, ou en cours de saisie, reste affiché jusqu'à l'enregistrement, + // même vidé : sinon il disparaît sous les doigts et la frappe part dans le champ suivant + const openedHas = (field) => openedFields.includes(field) || field in edits const openField = (field) => { setOpenedFields((prev) => (prev.includes(field) ? prev : [...prev, field])) setFocusField(field)