From 1262b2432b7f97e51c70536ac2c7dda89692903a Mon Sep 17 00:00:00 2001 From: romainvalls Date: Mon, 30 Mar 2026 17:33:43 +0200 Subject: [PATCH] front: dont show error message on train name if focused Signed-off-by: romainvalls --- .../Itinerary/ItineraryModalFormHeader.tsx | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/front/src/applications/operationalStudies/views/Scenario/components/ManageTimetableItem/Itinerary/ItineraryModalFormHeader.tsx b/front/src/applications/operationalStudies/views/Scenario/components/ManageTimetableItem/Itinerary/ItineraryModalFormHeader.tsx index a23d2ec8390..08bb11386c5 100644 --- a/front/src/applications/operationalStudies/views/Scenario/components/ManageTimetableItem/Itinerary/ItineraryModalFormHeader.tsx +++ b/front/src/applications/operationalStudies/views/Scenario/components/ManageTimetableItem/Itinerary/ItineraryModalFormHeader.tsx @@ -103,17 +103,17 @@ const ItineraryModalFormHeader = ({ dispatch(updateName(e.target.value)); }; // Timetable item name error - const [nameFocused, setNameFocused] = useState(false); + const [isNameBlurred, setIsNameBlurred] = useState(false); const nameError: StatusWithMessage | undefined = useMemo(() => { - const shouldShowError = (nameFocused || submitAttempted) && isNameEmpty; + const shouldShowError = (isNameBlurred || (submitAttempted && isNameBlurred)) && isNameEmpty; if (!shouldShowError) return undefined; return { status: 'error', message: t('errorMessages.requiredField'), }; - }, [nameFocused, submitAttempted, isNameEmpty, t]); + }, [isNameBlurred, submitAttempted, isNameEmpty, t]); // Category warning const categoryWarningMessage = useMemo(() => { @@ -190,7 +190,12 @@ const ItineraryModalFormHeader = ({ value={name} title={name} onChange={handleNameChange} - onBlur={() => setNameFocused(true)} + onBlur={() => { + setIsNameBlurred(true); + }} + onFocus={() => { + setIsNameBlurred(false); + }} statusWithMessage={nameError} />