From 6fc4f96622f385b1f1eea7d2c9a5467d7a2af9a7 Mon Sep 17 00:00:00 2001 From: antoncoding Date: Wed, 3 Sep 2025 14:07:09 +0800 Subject: [PATCH 1/3] chore: misc fixes --- .claude/settings.local.json | 3 +- src/OnchainProviders.tsx | 70 +++++++++++--------- src/components/layout/header/Navbar.tsx | 6 +- src/components/providers/ClientProviders.tsx | 9 +-- src/hooks/useTransactionWithToast.tsx | 14 ++-- 5 files changed, 54 insertions(+), 48 deletions(-) diff --git a/.claude/settings.local.json b/.claude/settings.local.json index b8092c79..bdaef3f3 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -16,7 +16,8 @@ "Bash(node:*)", "Bash(npx tsc:*)", "Bash(pnpm add:*)", - "WebFetch(domain:www.heroui.com)" + "WebFetch(domain:www.heroui.com)", + "WebSearch" ], "deny": [] } diff --git a/src/OnchainProviders.tsx b/src/OnchainProviders.tsx index 348da33b..c1dd17b1 100644 --- a/src/OnchainProviders.tsx +++ b/src/OnchainProviders.tsx @@ -1,6 +1,6 @@ 'use client'; -import { ReactNode, useMemo } from 'react'; +import { ReactNode } from 'react'; import { RainbowKitProvider, darkTheme, lightTheme } from '@rainbow-me/rainbowkit'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { WagmiProvider } from 'wagmi'; @@ -36,42 +36,48 @@ const queryClient = new QueryClient({ }); const projectId = process.env.NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID ?? ''; +if (!projectId) { + if (process.env.NODE_ENV !== 'production') { + console.warn('NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID is not set; WagmiProvider disabled.'); + } + throw new Error('NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID is not set'); +} + +const staticWagmiConfig = createWagmiConfig(projectId); // eslint-disable-next-line @typescript-eslint/promise-function-async function WagmiConfigProvider({ children }: Props) { - const { customRpcUrls, rpcConfigVersion } = useCustomRpcContext(); - - // Create wagmi config with custom RPCs, recreating when RPC config changes - const wagmiConfig = useMemo(() => { - return createWagmiConfig(projectId, customRpcUrls); - }, [customRpcUrls, rpcConfigVersion]); - - if (!projectId) { - if (process.env.NODE_ENV !== 'production') { - console.warn('NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID is not set; WagmiProvider disabled.'); - } - return children; - } + const { customRpcUrls } = useCustomRpcContext(); + + // Only use dynamic config when custom RPCs are explicitly set + const hasCustomRpcs = Object.keys(customRpcUrls).length > 0; + const wagmiConfig = hasCustomRpcs + ? createWagmiConfig(projectId, customRpcUrls) + : staticWagmiConfig; return ( - - - - {children} - - + + + + + + {children} + + + + ); } diff --git a/src/components/layout/header/Navbar.tsx b/src/components/layout/header/Navbar.tsx index e5106492..85e7db22 100644 --- a/src/components/layout/header/Navbar.tsx +++ b/src/components/layout/header/Navbar.tsx @@ -102,7 +102,11 @@ export function Navbar() { )} - + {error &&

{error}

}