diff --git a/client/pages/TrackerPage.jsx b/client/pages/TrackerPage.jsx index dc210f1..14655b3 100644 --- a/client/pages/TrackerPage.jsx +++ b/client/pages/TrackerPage.jsx @@ -32,6 +32,11 @@ import { TrackerBucket as Bucket } from '@/components/tracker/TrackerBucket'; import IncomeBreakdownModal from '@/components/IncomeBreakdownModal'; +function fmtBalanceAge(isoStr) { + if (!isoStr) return null; + return new Date(isoStr).toLocaleString(undefined, { month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' }); +} + // ── Main page ────────────────────────────────────────────────────────────── function LateAttributionDialog({ attr, remaining, busy, onAccept, onDismiss }) { if (!attr) return null; @@ -434,6 +439,12 @@ export default function TrackerPage() { {bankTracking.account_name} · {fmt(bankTracking.balance ?? 0)} balance + {bankTracking.last_updated && ( + <> + · + as of {fmtBalanceAge(bankTracking.last_updated)} + > + )} {Number(bankTracking.pending_payments ?? 0) > 0 && ( <> · @@ -540,7 +551,7 @@ export default function TrackerPage() { - Live + Live Sync
@@ -549,6 +560,11 @@ export default function TrackerPage() {
{Number(bankTracking.remaining ?? 0) < 0 ? '−' : ''}{fmt(Math.abs(Number(bankTracking.remaining ?? 0)))} projected after bills
+ {bankTracking.last_updated && ( ++ as of {fmtBalanceAge(bankTracking.last_updated)} +
+ )} ) : (