From 7e33fb6424c7f023fb13f37a8162e7c3b74c5082 Mon Sep 17 00:00:00 2001 From: Paul Bienkowski Date: Wed, 2 Mar 2022 19:02:24 +0100 Subject: [PATCH] Prevent JS error on track page when bounding box is invalid --- frontend/src/components/Map/index.tsx | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/frontend/src/components/Map/index.tsx b/frontend/src/components/Map/index.tsx index 86c82ce..0fc3155 100644 --- a/frontend/src/components/Map/index.tsx +++ b/frontend/src/components/Map/index.tsx @@ -77,18 +77,21 @@ function Map({ useEffect(() => { if (boundsFromJson) { - const [minX, minY, maxX, maxY] = turfBbox(boundsFromJson) - const vp = new WebMercatorViewport({width: 1000, height: 800}).fitBounds( - [ - [minX, minY], - [maxX, maxY], - ], - { - padding: 20, - offset: [0, -100], - } - ) - setViewport(_.pick(vp, ['zoom', 'latitude', 'longitude'])) + const bbox = turfBbox(boundsFromJson); + if (bbox.every(v => Math.abs(v) !== Infinity)) { + const [minX, minY, maxX, maxY] = bbox; + const vp = new WebMercatorViewport({width: 1000, height: 800}).fitBounds( + [ + [minX, minY], + [maxX, maxY], + ], + { + padding: 20, + offset: [0, -100], + } + ) + setViewport(_.pick(vp, ['zoom', 'latitude', 'longitude'])) + } } }, [boundsFromJson])