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;