From 49ccbe3ee90098c6651a5a51339ef3654c10d787 Mon Sep 17 00:00:00 2001 From: zubiden <19638254+zubiden@users.noreply.github.com> Date: Mon, 15 Jul 2024 15:51:57 +0200 Subject: [PATCH] URL: Fix opening /s/ links (#4750) --- src/global/actions/api/chats.ts | 4 +++- src/util/deepLinkParser.ts | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/global/actions/api/chats.ts b/src/global/actions/api/chats.ts index f94fab484..33bb69af7 100644 --- a/src/global/actions/api/chats.ts +++ b/src/global/actions/api/chats.ts @@ -1299,7 +1299,9 @@ addActionHandler('openTelegramLink', (global, actions, payload): ActionReturnTyp const hostname = TME_WEB_DOMAINS.has(uri.hostname) ? 't.me' : uri.hostname; const hostParts = hostname.split('.'); if (hostParts.length > 3) return; - const pathname = hostParts.length === 3 ? `${hostParts[0]}/${uri.pathname}` : uri.pathname; + + const adaptedPathname = uri.pathname.replace(/^\/?s\//, ''); + const pathname = hostParts.length === 3 ? `${hostParts[0]}/${adaptedPathname}` : adaptedPathname; const [part1, part2, part3] = pathname.split('/').filter(Boolean).map((part) => decodeURI(part)); const params = Object.fromEntries(uri.searchParams); diff --git a/src/util/deepLinkParser.ts b/src/util/deepLinkParser.ts index 46afd165e..e891d7e0d 100644 --- a/src/util/deepLinkParser.ts +++ b/src/util/deepLinkParser.ts @@ -593,7 +593,11 @@ function isNumber(s: string) { } function getPathParams(url: URL) { - return url.pathname.split('/').filter(Boolean).map(decodeURI); + const parts = url.pathname.split('/').filter(Boolean); + if (parts[0] === 's') { + parts.shift(); + } + return parts.map(decodeURI); } function getQueryParams(url: URL) {