From 20d842a8f41e46d07ee9357200ad8e440ca133c6 Mon Sep 17 00:00:00 2001 From: Dan Brewster Date: Mon, 7 Oct 2024 16:51:21 -0400 Subject: [PATCH] user facing metadata error --- .../Onboarding/PasteInviteLinkScreen.tsx | 36 ++++++++++++++----- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/apps/tlon-mobile/src/screens/Onboarding/PasteInviteLinkScreen.tsx b/apps/tlon-mobile/src/screens/Onboarding/PasteInviteLinkScreen.tsx index 78b8f8611f..fe83908b6b 100644 --- a/apps/tlon-mobile/src/screens/Onboarding/PasteInviteLinkScreen.tsx +++ b/apps/tlon-mobile/src/screens/Onboarding/PasteInviteLinkScreen.tsx @@ -20,7 +20,8 @@ import { View, YStack, } from '@tloncorp/ui'; -import { useCallback, useEffect } from 'react'; +import { trackError } from 'packages/app/utils/posthog'; +import { useCallback, useEffect, useState } from 'react'; import { Controller, useForm } from 'react-hook-form'; import { Keyboard } from 'react-native'; @@ -53,6 +54,8 @@ export const PasteInviteLinkScreen = ({ navigation }: Props) => { }, }); + const [metadataError, setMetadataError] = useState(null); + // watch for changes to the input & check for valid invite links const inviteLinkValue = watch('inviteLink'); useEffect(() => { @@ -61,14 +64,29 @@ export const PasteInviteLinkScreen = ({ navigation }: Props) => { inviteLinkValue, BRANCH_DOMAIN ); + setMetadataError(null); if (extractedLink) { - const inviteLinkMeta = await getMetadaFromInviteLink( - extractedLink, - BRANCH_KEY - ); - if (inviteLinkMeta) { - setLure(inviteLinkMeta as DeepLinkData); - return; + try { + const inviteLinkMeta = await getMetadaFromInviteLink( + extractedLink, + BRANCH_KEY + ); + if (inviteLinkMeta) { + setLure(inviteLinkMeta as DeepLinkData); + return; + } else { + throw new Error('Failed to retrieve invite metadata'); + } + } catch (e) { + trackError({ + message: e.message, + properties: { + inviteLink: extractedLink, + branchDomain: BRANCH_DOMAIN, + branchKey: BRANCH_KEY, + }, + }); + setMetadataError('Unable to load invite'); } } trigger('inviteLink'); @@ -134,7 +152,7 @@ export const PasteInviteLinkScreen = ({ navigation }: Props) => { render={({ field: { onChange, onBlur, value } }) => (