The tracker row/status/sort helpers are now typed. Introduces a TrackerRow domain interface (the fields these helpers read) and a TrackerStatus union (paid|autodraft|upcoming|due_soon|late|missed|skipped). Row money fields stay plain `number` for now — branding them Dollars is a later increment, done when the tracker API response itself is typed so the brand flows in from the source. Strict-mode handling: STATUS_SORT_ORDER is Record<TrackerStatus,number> (no undefined on lookup); moveInArray guards the noUncheckedIndexedAccess `T | undefined` from splice; the sort comparator relies on aliased-condition narrowing to reach string|number in each branch. typecheck 0 errors, lint 0 errors (47 warnings unchanged), build green, 48 client tests pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| components | ||
| contexts | ||
| hooks | ||
| lib | ||
| pages | ||
| public/img | ||
| App.jsx | ||
| api.js | ||
| index.css | ||
| main.jsx | ||