Negotiation Inbox Gets Prominent Unread-Count in Page Header
Negotiation Inbox Gets Prominent Unread-Count in Page Header
Release: v0.1.185 Category: UI/UX · Visual Hierarchy
Overview
Deposit negotiations are time-critical. When a landlord, agent, or tenant lands on the Negotiation page, they need to know instantly whether there are unread messages waiting for them — not after scanning the sidebar, and not after locating a small badge tucked beneath a section label in the thread list.
With v0.1.185, the Negotiation inbox page header now shows a clear, inline unread-message count alongside the page title, and adds a 'Mark all read' shortcut directly in that header area.
What Was Wrong Before
Prior to this release, the Negotiation page rendered its header via DashboardHeaderTitle with a static label — 'Negotiation' — and nothing else. Unread signals existed in two places:
- The sidebar badge — visible from other pages, but not re-confirmed once the user arrived on the page itself.
- The thread list panel badge — an aggregate count next to the 'Threads' section label, but positioned 1–2 visual scans below the page entry point.
For a workflow where delayed responses can escalate a routine deposit query into a formal dispute, this was a meaningful usability gap.
What Changed
Inline unread badge in the page header
The page header now includes a live badge showing the total number of unread messages across all open negotiation threads. It appears directly alongside the page title, at the topmost layer of the page, so it is the first thing a user sees on arrival.
Accurate, server-prefetched count
The unread count is sourced from the NegotiationInbox component and delivered via a server-side prefetch or client component wrapper. This means the number is correct on first render — no loading flicker, no stale count.
'Mark all read' in the header
A 'Mark all read' shortcut is now available directly in the page header area. Previously this action was only accessible from within the thread list panel. Moving it to the header makes it a one-click operation from the moment the page loads, reducing the steps needed to clear a notification backlog before diving into individual threads.
Who This Affects
| Role | Benefit |
|---|---|
| Landlords | Immediately see outstanding tenant responses without scanning the page |
| Letting agents | Manage multiple negotiation threads more efficiently with at-a-glance counts |
| Tenants | Faster awareness of landlord or agent replies on deposit deduction queries |
Technical Detail
- File changed:
src/app/dashboard/negotiation/page.tsx - The unread count is passed down from
NegotiationInbox— no new API endpoint is required. - The 'Mark all read' action in the header delegates to the same handler previously available in the thread list panel.