feat: formalise wallet connection as a site-wide feature#53
Conversation
- Add useWallet hook centralising wagmi/AppKit state with SSR mount guard - Add WalletButton component with connected/disconnected/loading states - Add /profile page showing wallet address, network, and disconnect - Add WalletButton to desktop navbar (was missing) and mobile menu - Update navbar to use fixed+backdrop on non-home pages; fix anchor links to /#section - Refactor ens-claim and admin to use useWallet, removing duplicated boilerplate - Replace deprecated useAccount with useConnection, disconnect with mutate - Add docs/wallet-connection.md for team reference
There was a problem hiding this comment.
Pull request overview
This PR formalizes wallet connectivity as a shared site-wide feature by introducing a central wallet hook, a reusable wallet button, and a new /profile page, then wiring those pieces into existing wallet-gated flows.
Changes:
- Add a shared
useWallethook plus a reusableWalletButtoncomponent for connection state/UI. - Replace direct wallet connector usage in the navbar, ENS claim flow, and admin page with the shared abstractions.
- Add a new
/profilepage for connected-wallet details and document the intended wallet architecture.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
src/hooks/use-wallet.ts |
Adds the shared wallet state hook used across the app. |
src/components/wallet-button.tsx |
Introduces the reusable connect/profile button UI. |
src/components/navbar.tsx |
Replaces navbar wallet controls and updates nav behavior for site-wide usage. |
src/components/ens-claim.tsx |
Migrates ENS claim flow to the shared wallet abstractions. |
src/app/profile/page.tsx |
Adds the new wallet profile page. |
src/app/admin/page.tsx |
Switches admin access flow to the shared wallet button/hook. |
docs/wallet-connection.md |
Documents the wallet architecture and usage conventions. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Replace focusable placeholder button with a non-interactive div to prevent keyboard users from tabbing onto an invisible control. Use Button's asChild mode for the connected state to eliminate the invalid nested <a><button> markup.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

update wallet connector