|
All checks were successful
PR Check — Frontend / frontend (pull_request) Successful in 1m57s
Fixes #423 The "Parent category" field of CategoryForm and the "Category" field of AddKeywordDialog were native selects with no typing. Both now use CategoryCombobox, like the category cell of the Transactions page: typed letters filter the list, which is ordered hierarchically with indentation and shows seed categories through their i18n_key. - CategoryCombobox accepts a minimal structural type (CategoryLike), so CategoryTreeNode rows pass without conversion; sortHierarchical is generic over it. Callers are unchanged. - buildParentOptions (pure, tested) keeps roots and level-1 categories, leaves out the edited category, and keeps only roots when the edited category has children. That rule alone also leaves out its descent (a descendant is never a root), so no separate subtree walk is needed. The parent currently stored is always kept so the field never looks blank. CategoryForm gets an editingId prop, passed by CategoryDetailPanel. - AddKeywordDialog reads the Transactions list (active and inputable, decision D2) through loadKeywordCategories, keeps the pre-filled category only when it is in that list (reconcileInitialCategory), and holds the apply button until the list is in. Its two fields sit above the scrolling block of matches, so the open list is not clipped by the scrollport. - Tests: parentOptions, keywordCategory, and static renders of both components. Changelogs and the user guide (with its i18n mirror). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| locales | ||
| config.ts | ||