From f79fd00e949fd86caf32d022b9acd293c8c09f8e Mon Sep 17 00:00:00 2001 From: Husam A Date: Fri, 24 Jul 2026 07:11:36 +0000 Subject: [PATCH] Fix crash on load when no wallet extension is installed InstallSnap read window.ethereum.networkVersion unguarded; on any browser without MetaMask (all mobile) this threw and took down the whole page with "Application error: a client-side exception has occurred". NavBar renders InstallSnap on every page, so the site was unusable without a wallet. Guard the accesses with optional chaining - without a wallet the OR Snap button now renders disabled instead of crashing. Co-Authored-By: Claude Fable 5 --- src/components/InstallSnap.tsx | 2 +- src/utils/snap.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/InstallSnap.tsx b/src/components/InstallSnap.tsx index 23100b3..24703ea 100644 --- a/src/components/InstallSnap.tsx +++ b/src/components/InstallSnap.tsx @@ -43,7 +43,7 @@ export function InstallSnap({ displayManualInstall }: any) { let button = null; if (displayManualInstall) { button = - } diff --git a/src/utils/snap.ts b/src/utils/snap.ts index eec7a9a..8db5fec 100644 --- a/src/utils/snap.ts +++ b/src/utils/snap.ts @@ -6,7 +6,7 @@ */ export const getSnaps = async () => { const win: any = window - return (await win.ethereum.request({ + return (await win.ethereum?.request({ method: 'wallet_getSnaps', })) as any; }; @@ -23,7 +23,7 @@ export const connectSnap = async ( ) => { const win: any = window - await win.ethereum.request({ + await win.ethereum?.request({ method: 'wallet_requestSnaps', params: { [snapId]: params,