From 5e8535a1ba603a88291832b495eff97a8ec07658 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Fri, 22 Nov 2024 21:40:15 +0000 Subject: [PATCH] Pass referer on native --- src/lib/hooks/useOpenLink.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/lib/hooks/useOpenLink.ts b/src/lib/hooks/useOpenLink.ts index 5b75695b8e..468992ac5e 100644 --- a/src/lib/hooks/useOpenLink.ts +++ b/src/lib/hooks/useOpenLink.ts @@ -33,6 +33,7 @@ export function useOpenLink() { }) return } else if (override ?? enabled) { + url = addUtmSource(url) await sheetWrapper( WebBrowser.openBrowserAsync(url, { presentationStyle: @@ -52,3 +53,19 @@ export function useOpenLink() { return openLink } + +function addUtmSource(url: string): string { + let parsedUrl + try { + parsedUrl = new URL(url) + } catch (e) { + return url + } + if (!parsedUrl.searchParams.has('utm_source')) { + parsedUrl.searchParams.set('utm_source', 'bluesky') + if (!parsedUrl.searchParams.has('utm_medium')) { + parsedUrl.searchParams.set('utm_medium', 'social') + } + } + return parsedUrl.toString() +}