BillTracker/client/lib
null 0fa80a77ef feat(settings): make Currency + Date-format real (plan Tier 2)
The Currency/Date-format dropdowns were decorative (nothing read them). Wire
them into the formatters, display-only (single active currency, no conversion):
- money.ts: activeCurrency/activeLocale read synchronously from localStorage at
  load (correct first paint), setMoneyFormat() write-through; formatUSD/
  formatUSDWhole/formatCentsUSD honor them. Default USD/en-US is byte-identical,
  so money.test + the probe stay green.
- utils.ts: fmtDate honors an activeDateFormat (MM/DD/YYYY | DD/MM/YYYY |
  YYYY-MM-DD) with setDateFormat() write-through.
- FormatSync (mounted in Layout) reconciles the server settings → localStorage/
  module and re-renders once only on a genuine cross-device divergence.
- Settings selects write through on change, currency list expanded (AUD/CHF/JPY/
  INR), "Regional" section, tooltips clarifying display-only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 15:54:19 -05:00
..
billDrafts.ts refactor(ts): HealthPage → TypeScript + export makeBillDraft's SourceBill return 2026-07-04 22:19:39 -05:00
billingSchedule.ts refactor(ts): convert pure lib utilities to TypeScript (TS7) 2026-07-03 21:59:16 -05:00
cashflowUtils.test.js feat(cashflow): safe-to-spend projection with timeline, vitest setup, package upgrades 2026-06-12 01:32:28 -05:00
cashflowUtils.ts refactor(ts): convert pure lib utilities to TypeScript (TS7) 2026-07-03 21:59:16 -05:00
download.ts feat(tracker): export/print the month + calendar link (plan C1/C2) 2026-07-05 14:49:09 -05:00
money.test.js fix(bill-modal): correctness + toast fallbacks + validator consolidation (BM1) 2026-07-03 18:32:25 -05:00
money.ts feat(settings): make Currency + Date-format real (plan Tier 2) 2026-07-05 15:54:19 -05:00
money.type-test.ts feat(ts): branded Cents/Dollars money types — first TS conversion (T2) 2026-07-03 21:36:24 -05:00
paymentActions.ts fix(money): manual payment path flags suspected dupes (409) w/o losing legit ones (Track A) 2026-07-05 11:51:06 -05:00
reorder.ts refactor(ts): convert pure lib utilities to TypeScript (TS7) 2026-07-03 21:59:16 -05:00
trackerTableColumns.ts refactor(ts): convert pure lib utilities to TypeScript (TS7) 2026-07-03 21:59:16 -05:00
trackerUtils.test.js feat(cashflow): safe-to-spend projection with timeline, vitest setup, package upgrades 2026-06-12 01:32:28 -05:00
trackerUtils.ts refactor(ts): convert MobileTrackerRow to TSX (B5) 2026-07-04 19:36:01 -05:00
utils.test.js fix(qa): seed demo data amounts, bill amount validation, negative USD format, a11y aria-labels, Playwright E2E setup (batch 0.41.0 QA) 2026-07-02 20:36:09 -05:00
utils.ts feat(settings): make Currency + Date-format real (plan Tier 2) 2026-07-05 15:54:19 -05:00
version.ts refactor(ts): convert small hooks + version to TypeScript (TS8) 2026-07-03 22:01:30 -05:00