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;