Notification badge wiring on standalone bottom-nav profile entry #46

Open
opened 2026-05-07 09:52:35 +00:00 by padreug · 0 comments
Owner

The hub already declares an unread field per tile (Hub.vue:39, Hub.vue:146-152) but it's not wired to data — gated on #32. The same badge concept should extend to the profile entry on each standalone's bottom nav (added in the unified-bottom-nav refactor): show an unread count there for things like incoming chat DMs, market order status updates, libra approval requests, etc.

Scope

  • A small "unread" service/composable per module that can publish a count to a shared registry (DI-injected, per CLAUDE.md).
  • The unified <ProfileSheetTrigger> reads its own app's count and renders a <Badge> overlay on the avatar.
  • Cross-app aggregation (i.e. how many unread items across all apps) lands on the hub tiles — that's #32.

Why now

Surfaced while planning the unified bottom-nav refactor. Avatar badge slot is naturally there; data plumbing is the work.

Depends on

  • #32 (hub tile badges)
  • The unified app shell (Phase A of bottom-nav refactor) being merged.

Acceptance

  • Standalone profile button shows a numeric badge (capped at 99+) when its module has unread items.
  • Badge clears on opening the relevant in-app view (read receipts).
  • No badge when count is 0.
The hub already declares an `unread` field per tile (`Hub.vue:39`, `Hub.vue:146-152`) but it's not wired to data — gated on #32. The same badge concept should extend to the **profile entry on each standalone's bottom nav** (added in the unified-bottom-nav refactor): show an unread count there for things like incoming chat DMs, market order status updates, libra approval requests, etc. ## Scope - A small "unread" service/composable per module that can publish a count to a shared registry (DI-injected, per CLAUDE.md). - The unified `<ProfileSheetTrigger>` reads its own app's count and renders a `<Badge>` overlay on the avatar. - Cross-app aggregation (i.e. how many unread items across *all* apps) lands on the hub tiles — that's #32. ## Why now Surfaced while planning the unified bottom-nav refactor. Avatar badge slot is naturally there; data plumbing is the work. ## Depends on - #32 (hub tile badges) - The unified app shell (Phase A of bottom-nav refactor) being merged. ## Acceptance - [ ] Standalone profile button shows a numeric badge (capped at 99+) when its module has unread items. - [ ] Badge clears on opening the relevant in-app view (read receipts). - [ ] No badge when count is 0.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
aiolabs/webapp#46
No description provided.