Skip to content

Inventory UI: extract reusable inline components and filters panel #79

@GitAddRemote

Description

@GitAddRemote

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 InventoryInlineRow and InventoryNewRow components with React.memo and 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 InventoryFiltersPanel component 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 InventoryFiltersPanel and 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

No one assigned

    Labels

    frontendFrontend app and dashboardinventoryInventory system featurestech-storyTechnical implementation storyui-uxUser interface and experience

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions