From 6c79700dd7d2427070fc638264e70ddde140917c Mon Sep 17 00:00:00 2001 From: enesozturk Date: Tue, 20 Feb 2024 16:24:51 +0300 Subject: [PATCH] refactor: update error capture method to disable relay connection errors to be catched --- .../AppExplorer/AppCard/index.tsx | 5 +++-- src/utils/error.ts | 22 ++++++++++++++++++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/components/notifications/AppExplorer/AppCard/index.tsx b/src/components/notifications/AppExplorer/AppCard/index.tsx index e143b11a..bce19810 100644 --- a/src/components/notifications/AppExplorer/AppCard/index.tsx +++ b/src/components/notifications/AppExplorer/AppCard/index.tsx @@ -7,7 +7,7 @@ import SpannerSVG from '@/assets/Spanner.svg' import Badge from '@/components/general/Badge' import Text from '@/components/general/Text' import W3iContext from '@/contexts/W3iContext/context' -import { logError } from '@/utils/error' +import { getErrorMessage, logError } from '@/utils/error' import { showErrorMessageToast, showSuccessMessageToast } from '@/utils/toasts' import SubscribeButton from './SubscribeButton' @@ -69,9 +69,10 @@ const AppCard: React.FC = ({ appDomain: new URL(url).host }) } catch (error) { + const message = getErrorMessage(error, `Failed to subscribe to ${name}`) logError(error) setSubscribing(false) - showErrorMessageToast(`Failed to subscribe to ${name}`) + showErrorMessageToast(message) } }, [userPubkey, name, description, logo, url, setSubscribing, subscribed, notifyClientProxy] diff --git a/src/utils/error.ts b/src/utils/error.ts index 47167ac9..f3493250 100644 --- a/src/utils/error.ts +++ b/src/utils/error.ts @@ -1,6 +1,26 @@ import { captureException } from '@sentry/react' -export const logError = (error: any) => { +const errorCodeMessageMap = { + socketStalled: 'Socket stalled when trying to connect to wss://relay.walletconnect.org' +} + +export const getErrorMessage = (error: unknown, defaultMessage: string) => { + if (error?.message?.includes('timeout')) { + return 'Failed to subscribe, check your connection and try again' + } + + switch (error?.message) { + case errorCodeMessageMap.socketStalled: + return 'Failed to subscribe, check your connection and try again' + default: + return defaultMessage || error?.message + } +} + +export const logError = (error: unknown) => { console.error(error) + if (error?.message === errorCodeMessageMap.socketStalled) { + return + } captureException(error) }