-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
frontendFrontend app and dashboardFrontend app and dashboardinventoryInventory system featuresInventory system featurestech-storyTechnical implementation storyTechnical implementation storyui-uxUser interface and experienceUser interface and experience
Description
Tech Story
Extract reusable inventory components and hooks so inline behaviors and filters can be shared across upcoming screens with lower render churn.
Background
The inventory page mixes inline rows, the new pinned row, and the filters/header in one file. We plan to reuse inline editing and filters in other inventory surfaces; componentizing now reduces duplication and improves memoization.
Technical Plan
- Create
InventoryInlineRowandInventoryNewRowcomponents withReact.memoand stable props to reduce rerenders. - Extract a shared hook for location filtering and focus wiring (autocomplete options, best-match selection, focusController registration) used by both rows.
- Build an
InventoryFiltersPanelcomponent for search/category/location filters, view mode, org selector, sort/group toggles, and clear filters; wire existing logic via props/callbacks. - Update the page to consume these components; place them under a shared components folder for reuse.
Definition of Done
- Inline row and new-row logic live in reusable components/hooks with stable props; page imports the new pieces.
- Filters/header controls are implemented via a shared
InventoryFiltersPaneland used on the inventory page. - Rerenders drop for unchanged rows due to memoization; verified via React devtools/Profiler or instrumentation.
- Components are ready for reuse in other inventory surfaces without duplicating logic.
Metadata
Metadata
Assignees
Labels
frontendFrontend app and dashboardFrontend app and dashboardinventoryInventory system featuresInventory system featurestech-storyTechnical implementation storyTechnical implementation storyui-uxUser interface and experienceUser interface and experience