store: faceted product filters — kategori, merk, kendaraan, ketersediaan #46
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Kendaraan facet blocked by #41 (needs
fitment[]); the rest is buildable now.produk.htmlis the biggest functional gap in the whole design. It specifies a sidebar of four facet groups with per-option counts, an active-filter chip row, a result count, and a collapse toggle on mobile:fitment[]212 produkcountWhat exists today in
apps/store/app/products/product-browser.tsxis a single-select category button row plus a text search, driven byqandkategoriparams. So: multi-select, three new facet dimensions, counts, and chips are all new.Notes
brandis nullable andfitmentfree text, so facet options must be derived from the data rather than hardcoded, and items missing a value simply do not match that facet.Filter & urutkantoggle. Keep every option at the 44px tap target already established inglobals.css.Acceptance
Multi-select across all four groups narrows the grid correctly, counts match what selecting the facet would actually yield, chips remove their own filter, the result count is accurate, and every state round-trips through the URL. Category and brand facets ship first; the Kendaraan group lands with #41. Cover the filter-reduction logic with a
node:testunit test over a fixture catalog — pull the pure part out of the component so it is testable, since the app has no component test setup.yuris referenced this issue2026-08-28 02:25:53 +00:00