wrolpi/app/src/components/inventory
Roland 906705e5b4 ui: thirty-five files off Semantic, leaving fifteen
Phase 2, part 4.  Baseline 50 -> 15.

Migrated: all eight calculators, the rest of inventory and collections, the
Map/Zim/Docs cluster, Videos, Files, Search, Archive, DashboardPage,
DatesSelector, HelpModal, Events, Tags, Flasher's neighbours, admin Settings
and Status, Download, and App.

Also the three shared modules everything imports: api.js and customHooks.js
swap the Semantic toast library for the library's shim (same call shape), and
useForm.js renders the library's Message.  useForm accepts both the old
`{content, header, positive|negative}` shape and the new `{kind, title}`,
because the pages building those objects migrate separately.

Two library gaps closed, both found by call sites needing them:

  ActionInput is a forwardRef now.  Its ref reaches the input rather than the
  wrapper, because callers use it to focus or select the field -- a ref to the
  surrounding div would do neither, which is why one call site had resorted to
  hand-copying the component's markup.

  Header takes a `color` token name.  Three separate call sites had reached for
  an inline style to colour a heading that carries meaning ("3 items to add"
  against "2 to remove"), which is how a hex ends up in markup.

Two files needed repair after being interrupted mid-edit: MapViewer had a
Segment left in its error branch, and VideoPlayer had lost the useContext
import its own code still used.  Neither jest nor tsc noticed; only
`npm run build` did, which is the whole reason that check exists.

Fifteen files remain: Archive, BulkTagModal, Channels, Docs, FileBrowser,
FilePreview, Flasher, Nav, Playlists, Theme.tsx, Upload, VideoPlayer, Zim,
ControllerPage, admin/Downloads.  Theme.tsx is deliberately last -- the
unmigrated files still import its Semantic-backed wrappers, so it can only go
once they have.
2026-07-30 12:54:24 -06:00
..
CatalogEditor.js ui: Common.js and thirteen more files off Semantic 2026-07-30 11:55:39 -06:00
computeFields.js Add "Count by Weight" to estimate item counts from weighing 2026-06-19 14:36:56 -06:00
computeFields.test.js Add "Count by Weight" to estimate item counts from weighing 2026-06-19 14:36:56 -06:00
FieldCell.js ui: thirty-five files off Semantic, leaving fifteen 2026-07-30 12:54:24 -06:00
FieldSchemaEditor.js ui: thirty-five files off Semantic, leaving fifteen 2026-07-30 12:54:24 -06:00
FieldSchemaEditor.test.js ui: thirty-five files off Semantic, leaving fifteen 2026-07-30 12:54:24 -06:00
Inventory.cy.js Rebuild Inventory as a config-only system with food catalog and calculators 2026-06-14 17:14:54 -06:00
inventoryExport.js Add a recommended Food Storage example, a Ration tab, and a supply planner 2026-06-19 12:40:30 -06:00
inventoryExport.test.js Add a recommended Food Storage example, a Ration tab, and a supply planner 2026-06-19 12:40:30 -06:00
InventoryExportPanel.js ui: Common.js and thirteen more files off Semantic 2026-07-30 11:55:39 -06:00
InventoryImportModal.js ui: thirty-five files off Semantic, leaving fifteen 2026-07-30 12:54:24 -06:00
InventoryImportModal.test.js ui: thirty-five files off Semantic, leaving fifteen 2026-07-30 12:54:24 -06:00
InventoryItemsMobile.js ui: Common.js and thirteen more files off Semantic 2026-07-30 11:55:39 -06:00
InventoryItemsMobile.test.js ui: Common.js and thirteen more files off Semantic 2026-07-30 11:55:39 -06:00
InventoryPrint.js Add CSV/PDF export and a search filter to Inventory 2026-06-19 11:06:38 -06:00
InventoryPrint.test.js Add CSV/PDF export and a search filter to Inventory 2026-06-19 11:06:38 -06:00
InventoryRoute.js ui: thirty-five files off Semantic, leaving fifteen 2026-07-30 12:54:24 -06:00
InventorySummary.js ui: Common.js and thirteen more files off Semantic 2026-07-30 11:55:39 -06:00
InventorySummary.test.js ui: Common.js and thirteen more files off Semantic 2026-07-30 11:55:39 -06:00
InventoryTable.js ui: thirty-five files off Semantic, leaving fifteen 2026-07-30 12:54:24 -06:00
InventoryTable.test.js ui: thirty-five files off Semantic, leaving fifteen 2026-07-30 12:54:24 -06:00
summarize.js Add a recommended Food Storage example, a Ration tab, and a supply planner 2026-06-19 12:40:30 -06:00
summarize.test.js Add a recommended Food Storage example, a Ration tab, and a supply planner 2026-06-19 12:40:30 -06:00
units.js Allow arithmetic expressions in inventory number fields 2026-06-19 15:14:10 -06:00
units.test.js Allow arithmetic expressions in inventory number fields 2026-06-19 15:14:10 -06:00