Blog: Work Queue Time Filter — What We Fixed and Why It Matters
Work Queue Time Filter — What We Fixed and Why It Matters
Release v0.1.273 · UI/UX · Consistency
The Work Queue is the first thing agents and landlords see when they open the platform. Every item waiting for attention — an ending tenancy, a pending deduction, an unresolved dispute — surfaces here. Getting that queue right is non-negotiable. In v0.1.273 we fixed three small but important issues with the Today / This Week time filter toggle.
The Problem
1. Badge counts didn't match the cards on screen
The count badges on the Today and This Week tabs were pulled straight from the server summary response. That summary is computed at request time and includes every qualifying item — even ones that have since been actioned or snoozed by the user during the same session.
The result: a user sees 3 on the Today badge, scrolls the queue, and counts only 2 cards. One item was actioned moments ago. The badge hadn't caught up.
This kind of count inconsistency quietly erodes trust. Users start wondering whether something is hidden, broken, or missed.
2. Section headers swapped without any visual cue
Clicking between tabs caused section headers to change instantly — Ending Today becoming Upcoming Check-Outs — Next 7 Days with no animation whatsoever. Because the layout shift was abrupt, it was easy to lose your place or momentarily misread which time window you were looking at.
3. Tab preference was forgotten on every reload
The component always initialised on Today. Users who prefer to work from the weekly view had to re-select This Week every time they navigated back to the queue — a minor but repeated friction.
What Changed
Badge counts sourced from rendered arrays
todayCount and weekCount are now computed from the same client-filtered arrays that produce the visible cards. If an item is filtered out of the rendered list, it is also excluded from the badge. The count badge and the card list are always in agreement.
Before: badge count ← server summary (stale, unfiltered)
After: badge count ← client-rendered array length (live, filtered)
Fade transition on content switch
Switching tabs now triggers a subtle fade on the queue content area. The animation is intentionally short — enough to signal that the content is changing, not so long as to feel slow. Section header text like Ending Today or Upcoming Check-Outs — Next 7 Days transitions in cleanly, so the context shift is always legible.
Preference persisted to localStorage
The selected tab (today or week) is written to localStorage when changed and read back on mount. Users who work primarily from the weekly view will find it pre-selected on return visits. The preference is per-browser and requires no account setting.
Why These Details Matter
None of these three issues blocked a user from completing their work. But together they introduced low-level friction and doubt — the kind that accumulates into a feeling that a product is "a bit off" without anyone being able to point to exactly why.
Deposit disputes and tenancy check-outs are already stressful. The queue needs to be a source of clarity, not a source of second-guessing. A count badge that matches what you see, a transition that confirms your action, and a preference that sticks — these are small things that make the tool feel trustworthy.
Affected file: src/app/dashboard/work-queue.tsx