Difficulty: Hard
Type: Bug
Summary
Add consistent wallet connection guards to screens that require a connected wallet so users cannot directly open member-only routes in an invalid state.
Current Behaviour
The root route redirects disconnected users to onboarding, but routes such as /guilds, /guilds/[guildId], and /settings can still be opened directly through navigation, deep links, or reload-like flows. Some of these screens assume wallet state or show member functionality even when no wallet is connected.
Expected Behaviour
Screens that require a connected wallet should show a clear wallet-required state or redirect users to the profile/onboarding flow before running wallet-scoped queries or showing member-only data.
Suggested Implementation
Create a reusable route guard or screen wrapper, such as WalletRequired, that reads the wallet store and either renders children, redirects to /profile, or shows a connect-wallet empty state. Apply it to guild list, guild detail, settings account actions, and any future wallet-scoped screens. Keep access check usable for manual verification if that is intended, but make the wallet requirement explicit where needed.
Files or Areas Likely Affected
app/guilds.tsx
app/guilds/[guildId].tsx
app/settings.tsx
app/profile.tsx
src/features/wallet/
src/components/
Acceptance Criteria
Additional Notes
Assumption: /access-check may remain usable without a connected wallet because it supports manual wallet entry. Confirm this behaviour before applying the guard to access checks.
Difficulty: Hard
Type: Bug
Summary
Add consistent wallet connection guards to screens that require a connected wallet so users cannot directly open member-only routes in an invalid state.
Current Behaviour
The root route redirects disconnected users to onboarding, but routes such as
/guilds,/guilds/[guildId], and/settingscan still be opened directly through navigation, deep links, or reload-like flows. Some of these screens assume wallet state or show member functionality even when no wallet is connected.Expected Behaviour
Screens that require a connected wallet should show a clear wallet-required state or redirect users to the profile/onboarding flow before running wallet-scoped queries or showing member-only data.
Suggested Implementation
Create a reusable route guard or screen wrapper, such as
WalletRequired, that reads the wallet store and either renders children, redirects to/profile, or shows a connect-wallet empty state. Apply it to guild list, guild detail, settings account actions, and any future wallet-scoped screens. Keep access check usable for manual verification if that is intended, but make the wallet requirement explicit where needed.Files or Areas Likely Affected
app/guilds.tsxapp/guilds/[guildId].tsxapp/settings.tsxapp/profile.tsxsrc/features/wallet/src/components/Acceptance Criteria
walletAddressis missing.Additional Notes
Assumption:
/access-checkmay remain usable without a connected wallet because it supports manual wallet entry. Confirm this behaviour before applying the guard to access checks.