BillTracker/client/pages
null db1be4b0bd fix(tracker): pin-Due sort uses reconciled status; add filtered-empty state
- Pin-upcoming sort ranked on raw row.status, so a bill paid-by-threshold
  but still carrying a stale 'late'/'missed' status was pinned to the top.
  Rank on rowEffectiveStatus (same source the overdue filter uses) so it
  sorts to the bottom instead.
- Filtering to zero results showed a blank content area (rows.length checks
  the unfiltered list). Add a "No bills match your filters" state with a
  Clear-filters action.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 14:35:03 -05:00
..
AboutPage.tsx refactor(ts): convert content pages to TSX (B13) 2026-07-04 20:32:06 -05:00
AdminPage.tsx refactor(ts): move User to @/types + type auth endpoints; add code to 500 (Track C/D) 2026-07-05 12:26:11 -05:00
AnalyticsPage.tsx refactor(ts): AnalyticsPage → TypeScript (SVG charts + forecast); drop unused Skeleton import 2026-07-04 22:48:28 -05:00
BankTransactionsPage.tsx refactor(ts): type the bank-ledger API responses (Track C) 2026-07-05 12:02:28 -05:00
BillsPage.tsx perf(ui): useDeferredValue on the Bills + Subscriptions search filters (Phase 2 stack leverage) 2026-07-05 13:16:21 -05:00
CalendarPage.tsx refactor(ts): CalendarPage → TypeScript (money map + grid + cashflow + snowball glance) 2026-07-04 22:58:34 -05:00
CategoriesPage.tsx refactor(ts): CategoriesPage → TypeScript (category list + drag-reorder + expand) 2026-07-04 22:44:39 -05:00
DataPage.tsx refactor(ts): DataPage → TypeScript (section routing + data-section orchestration) 2026-07-04 22:21:48 -05:00
HealthPage.tsx refactor(ts): HealthPage → TypeScript + export makeBillDraft's SourceBill return 2026-07-04 22:19:39 -05:00
LoginPage.tsx refactor(ts): move User to @/types + type auth endpoints; add code to 500 (Track C/D) 2026-07-05 12:26:11 -05:00
NotFoundPage.tsx refactor(ts): convert content pages to TSX (B13) 2026-07-04 20:32:06 -05:00
PayoffPage.tsx refactor(ts): PayoffPage → TypeScript (debt payoff simulator) 2026-07-04 22:36:24 -05:00
PrivacyPage.tsx refactor(ts): convert content pages to TSX (B13) 2026-07-04 20:32:06 -05:00
ProfilePage.tsx refactor(ts): ProfilePage → TypeScript; widen AuthContext setUser to accept updaters 2026-07-04 22:53:51 -05:00
ReleaseNotesPage.tsx refactor(ts): convert content pages to TSX (B13) 2026-07-04 20:32:06 -05:00
RoadmapPage.tsx refactor(ts): RoadmapPage → TypeScript (issues board + dev activity log) 2026-07-04 22:25:35 -05:00
SettingsPage.tsx refactor(ts): SettingsPage → TypeScript (auto-save settings + tracker layout toggles) 2026-07-04 22:29:16 -05:00
SnowballPage.tsx refactor(ts): type snowball projection + settings responses (Track C) 2026-07-05 12:16:03 -05:00
SpendingPage.tsx refactor(ts): close the 4 client any's + document a best-effort catch (Phase 1b) 2026-07-05 13:13:32 -05:00
StatusPage.tsx refactor(ts): StatusPage → TypeScript (server-health dashboard, loose response shape) 2026-07-04 22:33:15 -05:00
SubscriptionCatalogPage.tsx refactor(ts): convert AdminPage + SubscriptionCatalogPage to TSX (B12) 2026-07-04 20:14:30 -05:00
SubscriptionsPage.tsx perf(ui): useDeferredValue on the Bills + Subscriptions search filters (Phase 2 stack leverage) 2026-07-05 13:16:21 -05:00
SummaryPage.tsx refactor(ts): SummaryPage → TypeScript (React Query summary + drag-reorder expenses) 2026-07-04 22:41:25 -05:00
TrackerPage.tsx fix(tracker): pin-Due sort uses reconciled status; add filtered-empty state 2026-07-05 14:35:03 -05:00