aboutsummaryrefslogtreecommitdiff
path: root/src/frontend/app/routes/map.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/app/routes/map.tsx')
-rw-r--r--src/frontend/app/routes/map.tsx21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/frontend/app/routes/map.tsx b/src/frontend/app/routes/map.tsx
index effd29b..f705617 100644
--- a/src/frontend/app/routes/map.tsx
+++ b/src/frontend/app/routes/map.tsx
@@ -32,7 +32,10 @@ const defaultStyle: StyleSpecification = {
export default function StopMap() {
const { t } = useTranslation();
const [stops, setStops] = useState<
- GeoJsonFeature<Point, { stopId: number; name: string; lines: string[] }>[]
+ GeoJsonFeature<
+ Point,
+ { stopId: number; name: string; lines: string[]; cancelled?: boolean }
+ >[]
>([]);
const [selectedStop, setSelectedStop] = useState<Stop | null>(null);
const [isSheetOpen, setIsSheetOpen] = useState(false);
@@ -57,14 +60,19 @@ export default function StopMap() {
StopDataProvider.getStops(region).then((data) => {
const features: GeoJsonFeature<
Point,
- { stopId: number; name: string; lines: string[] }
+ { stopId: number; name: string; lines: string[]; cancelled?: boolean }
>[] = data.map((s) => ({
type: "Feature",
geometry: {
type: "Point",
coordinates: [s.longitude as number, s.latitude as number],
},
- properties: { stopId: s.stopId, name: s.name.original, lines: s.lines },
+ properties: {
+ stopId: s.stopId,
+ name: s.name.original,
+ lines: s.lines,
+ cancelled: s.cancelled,
+ },
}));
setStops(features);
});
@@ -157,7 +165,12 @@ export default function StopMap() {
type="symbol"
source="stops-source"
layout={{
- "icon-image": `stop-${region}`,
+ "icon-image": [
+ "case",
+ ["boolean", ["get", "cancelled"], false],
+ `stop-${region}-cancelled`,
+ `stop-${region}`,
+ ],
"icon-size": ["interpolate", ["linear"], ["zoom"], 11, 0.7, 18, 1.0],
"icon-allow-overlap": true,
"icon-ignore-placement": true,