Skip to content

Commit 2e5749e

Browse files
committed
fix: refactor marker validation logic and improve marker rendering in MarkerMap
1 parent efeec8f commit 2e5749e

File tree

4 files changed

+13
-6
lines changed

4 files changed

+13
-6
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
}
1717
},
1818
"scripts": {
19-
"example": "bunx vite",
19+
"example": "vite --config vite.config.example.ts",
2020
"build": "bunx tsc && bunx vite build",
2121
"lint": "bunx biome check --diagnostic-level=error . && bunx tsc --noEmit --incremental",
2222
"lint:fix": "bunx biome check . --write",

src/Features/Bounds/FitsBounds.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import type { Feature, FeatureCollection, GeoJsonProperties, Geometry } from "ge
33
import mapboxgl from "mapbox-gl";
44
import { useEffect, useMemo, useRef } from "react";
55
import { useMap } from "react-map-gl";
6+
import isValidMarker from "@/types/isValidMarker.ts";
67
import { MarkerProps } from "@/types/MarkerProps";
78

89
interface FitBoundsProps {
@@ -22,8 +23,6 @@ const serializeKey = (key: unknown): string => {
2223
return JSON.stringify(key);
2324
};
2425

25-
const isValidMarker = (m: MarkerProps): m is MarkerProps & { lng: number; lat: number } => Number.isFinite(m.lng) && Number.isFinite(m.lat);
26-
2726
const extractCoordsFromFeatures = (input?: FeatureCollection<Geometry> | Feature<Geometry> | Feature<Geometry>[]): [number, number][] => {
2827
if (!input) {
2928
return [];

src/Features/MarkerMap/MarkerMap.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import FitBounds from "@/Features/Bounds/FitsBounds";
99
import useMarkerMap from "@/Features/MarkerMap/useMarkerMap.ts";
1010
import DefaultMarker from "@/Features/Markers/DefaultMarkers";
1111
import RenderFeatures from "@/Features/RenderFeature/RenderFeature.tsx";
12+
import isValidMarker from "@/types/isValidMarker.ts";
1213
import { MarkerMapProps } from "@/types/MarkerMapProps";
1314

1415
const MarkerMap = ({
@@ -104,11 +105,11 @@ const MarkerMap = ({
104105
onMapClick?.(e.lngLat.lng, e.lngLat.lat);
105106
}}
106107
>
107-
{markers.map((m) => (
108+
{markers.filter(isValidMarker).map((m) => (
108109
<Marker
109110
key={m.id}
110-
longitude={isNumber(m.lng) ? m.lng : undefined}
111-
latitude={isNumber(m.lat) ? m.lat : undefined}
111+
longitude={m.lng}
112+
latitude={m.lat}
112113
anchor="bottom"
113114
onClick={(e) => {
114115
e.originalEvent.stopPropagation();

src/types/isValidMarker.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import type { MarkerProps } from "@/types/MarkerProps";
2+
3+
const isValidMarker = (m: MarkerProps): m is MarkerProps & { lng: number; lat: number } => {
4+
return Number.isFinite(m.lng) && Number.isFinite(m.lat);
5+
};
6+
7+
export default isValidMarker;

0 commit comments

Comments
 (0)