diff --git a/src/app/components/nav.jsx b/src/app/components/nav.jsx index f0df75b..dc87606 100644 --- a/src/app/components/nav.jsx +++ b/src/app/components/nav.jsx @@ -6,19 +6,32 @@ import Link from "next/link"; import { useRouter, usePathname } from "next/navigation"; import { Icon, ICON_IDS } from "@/components/icons"; import { useProgressBar } from "./TopLoadingBar"; +import { useWalletState } from "../hooks/useWalletState"; const Nav = memo(() => { const hasAnomaly = true; const router = useRouter(); const pathname = usePathname(); const { start, done } = useProgressBar(); + const { wallet, isChecking, refreshWalletState } = useWalletState(); + + const walletLabel = wallet?.connected + ? wallet.publicKey + ? `${wallet.publicKey.slice(0, 4)}...${wallet.publicKey.slice(-4)}` + : "Wallet connected" + : "Connect Wallet"; const handleConnectWallet = useCallback(async () => { start(); - await new Promise((resolve) => setTimeout(resolve, 1200)); + const state = await refreshWalletState(); done(); - alert("Connect Wallet clicked! (Add your Web3 logic here)"); - }, [start, done]); + + if (state?.connected) { + alert(`Connected wallet: ${state.publicKey ?? "unknown"}`); + } else { + alert("No active Stellar wallet detected. Please connect your extension."); + } + }, [refreshWalletState, start, done]); return (
@@ -48,8 +61,11 @@ const Nav = memo(() => {
+
+
+
+ Active wallet status: {walletStatus} +
{/* --- Consensus Statistics Rows --- */}
} subtitle="Active voting weights" /> diff --git a/src/app/hooks/useWalletState.ts b/src/app/hooks/useWalletState.ts new file mode 100644 index 0000000..3fe21f8 --- /dev/null +++ b/src/app/hooks/useWalletState.ts @@ -0,0 +1 @@ +export { useWalletState, WalletProvider, type WalletState } from "@/app/components/providers/WalletProvider"; diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 623a9a1..1bb490f 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -5,6 +5,7 @@ import "./globals.css"; import { ThemeProvider } from "./components/ThemeProvider"; import { ProgressBarProvider } from "./components/TopLoadingBar"; import { UserProvider } from "./components/providers/UserProvider"; +import { WalletProvider } from "./components/providers/WalletProvider"; import { QueryProvider } from "./components/providers/QueryProvider"; import Script from "next/script"; import { SocketProvider } from "./components/providers/SocketProvider"; @@ -89,11 +90,16 @@ export default function RootLayout({ disableTransitionOnChange > - - - {children} - - + + + {children} + + + + + {children} + +