All Docs
FeaturesDepositClearUpdated March 12, 2026

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:

  1. The sidebar badge — visible from other pages, but not re-confirmed once the user arrived on the page itself.
  2. 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

RoleBenefit
LandlordsImmediately see outstanding tenant responses without scanning the page
Letting agentsManage multiple negotiation threads more efficiently with at-a-glance counts
TenantsFaster 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.

Related