diff options
author | Hailey <me@haileyok.com> | 2024-07-11 18:43:10 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-11 18:43:10 -0700 |
commit | 8b121af2e438ca77cc5f5b1715516107c18aff6f (patch) | |
tree | c7f1a28b63226c79e07aef4d2e88898358a62ec6 /modules/expo-bluesky-swiss-army/src/Referrer/index.web.ts | |
parent | 83e8522e0a89be28b1733f4c50dbd4379d98d03b (diff) | |
download | voidsky-8b121af2e438ca77cc5f5b1715516107c18aff6f.tar.zst |
referrers for all platforms (#4514)
Diffstat (limited to 'modules/expo-bluesky-swiss-army/src/Referrer/index.web.ts')
-rw-r--r-- | modules/expo-bluesky-swiss-army/src/Referrer/index.web.ts | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/modules/expo-bluesky-swiss-army/src/Referrer/index.web.ts b/modules/expo-bluesky-swiss-army/src/Referrer/index.web.ts new file mode 100644 index 000000000..76f03e7c8 --- /dev/null +++ b/modules/expo-bluesky-swiss-army/src/Referrer/index.web.ts @@ -0,0 +1,34 @@ +import {Platform} from 'react-native' + +import {NotImplementedError} from '../NotImplemented' +import {GooglePlayReferrerInfo, ReferrerInfo} from './types' + +export function getGooglePlayReferrerInfoAsync(): Promise<GooglePlayReferrerInfo> { + throw new NotImplementedError() +} + +export function getReferrerInfoAsync(): Promise<ReferrerInfo | null> { + if ( + Platform.OS === 'web' && + // for ssr + typeof document !== 'undefined' && + document != null && + document.referrer + ) { + try { + const url = new URL(document.referrer) + if (url.hostname !== 'bsky.app') { + return { + referrer: url.href, + hostname: url.hostname, + } + } + } catch { + // If something happens to the URL parsing, we don't want to actually cause any problems for the user. Just + // log the error so we might catch it + console.error('Failed to parse referrer URL') + } + } + + return null +} |