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} />