Skip to content

Commit bd0081a

Browse files
committed
Fix vehicle mode filtering by normalizing transport_mode casing
- Use parseVehicleMode when mapping stop data and filtering by vehicle mode to handle uppercase values (e.g. "TRAM") from the stops database.
1 parent 2f67a58 commit bd0081a

3 files changed

Lines changed: 12 additions & 6 deletions

File tree

ui/src/components/forms/stop/utils/useGetStopInfoForEditingOnMap.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@ import {
77
useGetStopInfoForEditingOnMapQuery,
88
} from '../../../../generated/graphql';
99
import { RequiredNonNullableKeys } from '../../../../types';
10-
import { getGeometryPoint, requireValue } from '../../../../utils';
10+
import {
11+
getGeometryPoint,
12+
parseVehicleMode,
13+
requireValue,
14+
} from '../../../../utils';
1115
import { StopFormState } from '../types';
1216
import {
1317
RawName,
@@ -135,6 +139,8 @@ function parseResult(
135139
quayId: requireValue(rawQuay.netexId),
136140
stopId: requireValue(rawQuay.stopPoint.id),
137141
stopArea: requireValue(parseStopFormStopAreaInfo(rawQuay.stopPlace)),
142+
vehicleMode:
143+
parseVehicleMode(rawQuay.stopPlace?.transportMode) ?? undefined,
138144

139145
latitude: requireValue(point?.latitude),
140146
longitude: requireValue(point?.longitude),

ui/src/components/map/queries/useGetMapStops.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import compact from 'lodash/compact';
33
import { useMemo } from 'react';
44
import {
55
MapStopMinimalDetailsFragment,
6-
ReusableComponentsVehicleModeEnum,
76
StopsDatabaseQuayNewestVersionBoolExp,
87
useGetMapStopsQuery,
98
} from '../../../generated/graphql';
@@ -12,6 +11,7 @@ import { Viewport } from '../../../redux/types';
1211
import { parseDate } from '../../../time';
1312
import { Priority } from '../../../types/enums';
1413
import { StopPlaceState } from '../../../types/stop-registry';
14+
import { parseVehicleMode } from '../../../utils';
1515
import { useMapDataLayerSimpleQueryLoader } from '../../common/hooks/useLoader';
1616
import { filtersAndResultSelectionToQueryVariables } from '../../stop-registry/search/by-stop/filtersToQueryVariables';
1717
import { mapCompactOrNull } from '../../stop-registry/utils';
@@ -115,9 +115,8 @@ function mapRawStopToMapStop(
115115
return null;
116116
}
117117

118-
const vehicleMode = rawStop.stop_place?.transport_mode?.toLowerCase() as
119-
| ReusableComponentsVehicleModeEnum
120-
| undefined;
118+
const vehicleMode =
119+
parseVehicleMode(rawStop.stop_place?.transport_mode) ?? undefined;
121120

122121
return {
123122
label: rawStop.label,

ui/src/components/map/stops/hooks/useFilterStopsByVehicleMode.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { useCallback } from 'react';
22
import { ReusableComponentsVehicleModeEnum } from '../../../../generated/graphql';
33
import { useAppSelector } from '../../../../hooks';
44
import { FilterType, selectMapFilter } from '../../../../redux';
5+
import { parseVehicleMode } from '../../../../utils';
56
import { MapStop } from '../../types';
67
import { useVisibleRouteStops } from './useVisibleRouteStops';
78

@@ -16,7 +17,7 @@ export function useFilterStopsByVehicleMode(
1617
return useCallback(
1718
(stops: ReadonlyArray<MapStop>): ReadonlyArray<MapStop> =>
1819
stops.filter((stop) => {
19-
const vehicleMode = getStopVehicleMode(stop);
20+
const vehicleMode = parseVehicleMode(getStopVehicleMode(stop));
2021
const isStopInVisibleRoutes = visibleRouteStopLabels.includes(
2122
stop.label,
2223
);

0 commit comments

Comments
 (0)