From 2eb5a9a616a7de6f0637dcfa2660629ff6d57433 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Mon, 9 Mar 2026 18:17:15 +1100 Subject: [PATCH] Fix crash with bad location uri (#2746) fix crash with bad location uri --- .../components/message/MsgTypeRenderers.tsx | 2 ++ src/app/utils/common.ts | 22 +++++++++++++------ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/app/components/message/MsgTypeRenderers.tsx b/src/app/components/message/MsgTypeRenderers.tsx index a40ecae1..abbf354d 100644 --- a/src/app/components/message/MsgTypeRenderers.tsx +++ b/src/app/components/message/MsgTypeRenderers.tsx @@ -389,6 +389,8 @@ export function MLocation({ content }: MLocationProps) { const geoUri = content.geo_uri; if (typeof geoUri !== 'string') return ; const location = parseGeoUri(geoUri); + if (!location) return ; + return ( {geoUri} diff --git a/src/app/utils/common.ts b/src/app/utils/common.ts index 678f1b6e..6bda2802 100644 --- a/src/app/utils/common.ts +++ b/src/app/utils/common.ts @@ -87,13 +87,21 @@ export const scaleYDimension = (x: number, scaledX: number, y: number): number = }; export const parseGeoUri = (location: string) => { - const [, data] = location.split(':'); - const [cords] = data.split(';'); - const [latitude, longitude] = cords.split(','); - return { - latitude, - longitude, - }; + try { + const [, data] = location.split(':'); + const [cords] = data.split(';'); + const [latitude, longitude] = cords.split(','); + + if (typeof latitude === 'string' && typeof longitude === 'string') { + return { + latitude, + longitude, + }; + } + return undefined; + } catch { + return undefined; + } }; const START_SLASHES_REG = /^\/+/g;