feat(topbar): unread/queue badges + Approvals tab
build-and-publish / test (push) Has been cancelled
build-and-publish / image (push) Has been cancelled

App.tsx polls every 60s when authed + tenant known:
- chatApi.listThreads + listMessages -> count threads with last message
  from someone else after our localStorage read mark
- api.workItems filtered by tenant -> queue count

Badge UI:
- Chat tab shows amber unread pill (99+ cap)
- Approvals tab (new in topbar) shows navy queue-count pill

Also promotes Approvals to a first-class topbar tab (was landing-chip
only). 60s poll is identical to existing live-tick cadence so this
adds no extra polling load.
This commit is contained in:
2026-06-14 18:07:33 +04:00
parent d89660659f
commit 5a65408612
2 changed files with 58 additions and 1 deletions
+12
View File
@@ -2225,3 +2225,15 @@ select.studio-input { background: var(--bp-paper); }
.wizard-body { padding: 0 12px 12px; }
.wizard-preview { position: static; max-height: none; }
}
.tab-badge {
display: inline-flex; align-items: center; justify-content: center;
margin-left: 4px;
min-width: 18px; padding: 0 5px; height: 16px;
background: var(--bp-navy); color: var(--bp-paper);
font-family: var(--bp-mono); font-size: 9px; font-weight: 700; line-height: 1;
}
.tab-badge-amber { background: var(--bp-amber); color: var(--bp-paper); }
@media (max-width: 700px) {
.tab-badge { min-width: 14px; height: 12px; font-size: 8px; padding: 0 3px; }
}