Listings Filters
The left-hand search & filter panel: place search with recents (injected geocoder), free-text listing search, toned facility-type chips, a material category tree with indeterminate group states, region checklist, operational-only switch and a gate-fee range — every control with live faceted counts.
bunx shadcn@latest add @nx-ui/listings-filtersFaceted filtering, no map attached
Wired to the full national dataset through use-marketplace. Watch the matched count and every facet respond as you filter.
Standalone filters
Every control carries a live count from the endpoint's self-excluding facets, so a chip always says how many results it would yield. Type chips tone-match the map pins; the material tree uses group checkboxes with indeterminate states; the gate-fee range explains its side effect on unpriced listings.
Active filters gather into a removable chip row with clear-all, and the whole panel collapses to an edge tab (or a sheet on mobile).
Matched: … of … · Active filters: 0
Search & filters
Facility type
Materials
Region
Gate fee (mid, £/t)
AnyNarrowing this hides listings without published fees.
API reference
Exported parts and their props, extracted from the component source.
| Prop | Type | Default | Description |
|---|---|---|---|
marketplace* | Marketplace | — | — |
geoSearch | GeoSearchFn | — | Forward geocoder for "Find a place". Omit to hide the location search. |
onPlaceSelect | (result: GeoSearchResult) => void | — | Fired when the user picks a place (the hook's flyToCoords by default). |
categoryTree | CategoryTreeGroup[] | DEFAULT_CATEGORY_TREE | The category grouping to render. Defaults to the built-in tree. |
feeBounds | [number, number] | [0, 350] | Gate-fee slider bounds, £/t. |
title | string | "Search & filters" | — |
className | string | — | — |
defaultCollapsed | boolean | false | — |