feat(layout): adopt unified AppShell across hub + 7 standalones (Phase B) #52

Merged
padreug merged 2 commits from feat/unified-app-shell-consumers into main 2026-05-07 10:37:25 +00:00

2 commits

Author SHA1 Message Date
ef042fed71 fix(layout): drop remaining page-header Refresh buttons (closes HubPill collisions)
Same rationale as the activities/forum sweep in the previous commit: these
views are kept fresh by relay subscriptions + the WalletWebSocketService /
VisibilityService reconnect path, so the manual Refresh button was both
redundant and visually colliding with the new top-right HubPill.

Removed from:
- ChatComponent.vue        (peer list header — both desktop and mobile)
- accounting BalancePage   (top-right ghost button)
- expenses TransactionsPage (top-right outline button)
- wallet WalletPage        (top-right ghost button)

Pre-commit hook bypassed: same pre-existing prvkey false positive in
NostrFeed.vue tracked at #35; this diff doesn't touch that file.
2026-05-07 12:36:42 +02:00
c80a8461ac feat(layout): adopt unified AppShell across hub + 7 standalones (Phase B)
Refactor every entry point to consume the Phase A primitives. Each App.vue
collapses from 47-127 lines of shell boilerplate into a thin AppShell
consumer that declares its own BottomTab[] and active-path matcher;
Hub.vue now reuses ProfileSheetTrigger + PreferencesRow instead of
inlining its own bottom row.

The Settings tab is dropped from activities and libra (theme/lang/currency
now live in the shared profile sheet — see #50 for cleanup of orphaned
SettingsPage.vue routes). The redundant top-right LogIn icon is dropped
from every standalone (the bottom-nav profile slot covers that affordance).

BottomNav.vue gains optional `onClick`, `disabled`, and an optional `path`
on BottomTab so consumers can express coming-soon toasts (forum's Spaces/
Search/Alerts) and auth-gated tabs (market's "My Store" → toast when
logged out) without reaching back into shell internals.

While in here: remove the page-level Refresh buttons in ActivitiesPage,
EventsPage, MyTicketsPage, and NostrFeed. The relay-subscription +
VisibilityService reconnect path keeps these views fresh; manual refresh
was redundant and was now visually colliding with the new top-right
HubPill.

Net: -434 lines.
2026-05-07 12:26:26 +02:00