BillTracker/client/components/bill-modal
null 73be95d12d refactor(ts): convert BillModal to TSX (B11) — bill-modal feature done
The app's largest, most-central component (1092 ln, the add/edit form reached
from 9 entry points). Typed ~40 useState vars (Bill/Payment/BankTransaction/
BulkUnmatchState/Date), the useActionState save (isNew narrows `bill` non-null
via the aliased `!bill` const), FormErrors = Record<string,string>, and every
API response cast (billPayments/billTransactions/syncBillSimplefinPayments/
verifyAutopay/billMerchantRules). Its now-typed sub-components type-check the
props BillModal passes them. cycle_day coerced to string for Radix Select;
Bill index-sig fields (autopay_verified_at, source_bill_id) cast at use.

client/components/bill-modal/ + BillModal are 100% .tsx. typecheck 0, lint 0
errors (35 warns), build green, 48 tests, 17/17 e2e probe.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 20:10:48 -05:00
..
AutopayTrustIndicator.tsx refactor(ts): convert bill-modal sub-components to TSX (B10) 2026-07-04 20:03:09 -05:00
DebtDetailsSection.tsx refactor(ts): convert BillModal to TSX (B11) — bill-modal feature done 2026-07-04 20:10:48 -05:00
LinkedTransactionsSection.tsx refactor(ts): convert bill-modal sub-components to TSX (B10) 2026-07-04 20:03:09 -05:00
PaymentFormFields.tsx refactor(ts): convert bill-modal sub-components to TSX (B10) 2026-07-04 20:03:09 -05:00
PaymentHistoryList.tsx refactor(ts): convert bill-modal sub-components to TSX (B10) 2026-07-04 20:03:09 -05:00
TemplateSection.tsx refactor(ts): convert bill-modal sub-components to TSX (B10) 2026-07-04 20:03:09 -05:00
UnmatchDialogs.tsx refactor(ts): convert bill-modal sub-components to TSX (B10) 2026-07-04 20:03:09 -05:00
transactionDisplay.ts refactor(ts): convert bill-modal sub-components to TSX (B10) 2026-07-04 20:03:09 -05:00