Skip to content

Commit dbf7342

Browse files
committed
front: ensure behavior for non-recognized points in path
Signed-off-by: Achraf Mohyeddine <a.mohyeddine@gmail.com>
1 parent 7fcc66c commit dbf7342

File tree

4 files changed

+13
-5
lines changed

4 files changed

+13
-5
lines changed

front/public/locales/en/operationalStudies/manageTrainSchedule.json

+1
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@
9191
"pathfinding": "Path search",
9292
"pathfindingDone": "Pathfinding done.",
9393
"pathfindingError": "An error occurred in pathfinding: {{errorMessage}}.",
94+
"InvalidTrainScheduleStep": "At least one of the waypoints could not be recognized",
9495
"pathfindingInProgress": "Pathfinding in progress…",
9596
"pathfindingMissingParams": "Missing parameters for pathfinding: {{missingElements}}.",
9697
"pathfindingMissingParamsSimple": "Missing information for the search",

front/public/locales/fr/operationalStudies/manageTrainSchedule.json

+1
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@
9191
"pathfinding": "Recherche d’itinéraire",
9292
"pathfindingDone": "Recherche d'itinéraire terminée.",
9393
"pathfindingError": "Erreur dans la recherche d’itinéraire : {{errorMessage}}.",
94+
"InvalidTrainScheduleStep": "Au moins un des points de passage n'a pas été reconnu",
9495
"pathfindingInProgress": "Recherche d’itinéraire en cours…",
9596
"pathfindingMissingParams": "Éléments manquants pour la recherche : {{missingElements}}.",
9697
"pathfindingMissingParamsSimple": "Informations manquantes pour la recherche",

front/src/modules/pathfinding/components/Pathfinding/Pathfinding.tsx

+10-4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import infraLogo from 'assets/pictures/components/tracks.svg';
1010
import { Spinner } from 'common/Loaders';
1111
import { useOsrdConfSelectors } from 'common/osrdContext';
1212
import { usePathfinding } from 'modules/pathfinding/hooks/usePathfinding';
13+
import { isPathStepInvalid } from 'modules/pathfinding/utils';
1314
import { useStoreDataForRollingStockSelector } from 'modules/rollingStock/components/RollingStockSelector/useStoreDataForRollingStockSelector';
1415
import { conditionalStringConcat, formatKmValue } from 'utils/strings';
1516

@@ -23,7 +24,9 @@ type PathfindingProps = {
2324
const Pathfinding = ({ pathProperties, setPathProperties }: PathfindingProps) => {
2425
const { t } = useTranslation(['operationalStudies/manageTrainSchedule']);
2526

26-
const { getOrigin, getDestination } = useOsrdConfSelectors();
27+
const { getOrigin, getDestination, getPathSteps } = useOsrdConfSelectors();
28+
const pathSteps = useSelector(getPathSteps);
29+
const hasInvalidPathStep = pathSteps.some((pathStep) => isPathStepInvalid(pathStep));
2730
const origin = useSelector(getOrigin, isEqual);
2831
const destination = useSelector(getDestination, isEqual);
2932
const { rollingStock } = useStoreDataForRollingStockSelector();
@@ -61,7 +64,8 @@ const Pathfinding = ({ pathProperties, setPathProperties }: PathfindingProps) =>
6164
!pathfindingState.running &&
6265
pathfindingState.done &&
6366
origin &&
64-
destination && (
67+
destination &&
68+
!hasInvalidPathStep && (
6569
<div className="content pathfinding-done">
6670
<span className="lead" data-testid="result-pathfinding-done">
6771
<CheckCircle />
@@ -83,7 +87,7 @@ const Pathfinding = ({ pathProperties, setPathProperties }: PathfindingProps) =>
8387
</div>
8488
) : (
8589
<>
86-
{pathfindingState.error && (
90+
{(pathfindingState.error || hasInvalidPathStep) && (
8791
<div
8892
className={cx('content pathfinding-error', {
8993
'mt-2': infra && infra.state !== 'CACHED',
@@ -93,7 +97,9 @@ const Pathfinding = ({ pathProperties, setPathProperties }: PathfindingProps) =>
9397
<Stop />
9498
</span>
9599
<span className="flex-grow-1">
96-
{t('pathfindingError', { errorMessage: t(pathfindingState.error) })}
100+
{hasInvalidPathStep
101+
? t('InvalidTrainScheduleStep')
102+
: t('pathfindingError', { errorMessage: t(pathfindingState.error) })}
97103
</span>
98104
</div>
99105
)}

front/src/modules/pathfinding/hooks/usePathfinding.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ export const usePathfinding = (
219219
},
220220
});
221221
}
222-
}, [origin?.id, destination?.id, rollingStock]);
222+
}, [origin, destination, rollingStock]);
223223

224224
const handleInvalidPathItems = (
225225
steps: (PathStep | null)[],

0 commit comments

Comments
 (0)