Implement unified catalog search with token-based filtering
All checks were successful
Build Docker Image / build (push) Successful in 3m23s

- Add useCatalogSearch composable for managing unified search state
- Add UnifiedSearchBar component with token chips for filters
- Add CatalogHero component for empty/landing state
- Create grid components for each display mode:
  - CatalogGridProducts, CatalogGridSuppliers, CatalogGridHubs
  - CatalogGridHubsForProduct, CatalogGridProductsFromSupplier
  - CatalogGridProductsInHub, CatalogGridOffers
- Add unified catalog page at /catalog with query params
- Remove SubNavigation from catalog section (kept for other sections)
- Update all links to use new unified catalog paths
- Delete old nested catalog pages (offers/suppliers/hubs flows)
- Add i18n translations for catalog section
This commit is contained in:
Ruslan Bakiev
2026-01-22 10:57:30 +07:00
parent 01f0836173
commit 08d7e0ade9
39 changed files with 1278 additions and 2185 deletions

View File

@@ -112,18 +112,18 @@ const handleSearch = () => {
query.quantity = String(quantity.value)
}
// Navigate to offers flow
// Navigate to unified catalog
if (productUuid.value && locationUuid.value) {
// Both product and hub selected -> show offers
router.push({
path: localePath(`/catalog/offers/${productUuid.value}/${locationUuid.value}`),
query
path: localePath('/catalog'),
query: { product: productUuid.value, hub: locationUuid.value, ...query }
})
} else if (productUuid.value) {
// Only product selected -> select hub
// Only product selected -> show hubs for product
router.push({
path: localePath(`/catalog/offers/${productUuid.value}`),
query
path: localePath('/catalog'),
query: { product: productUuid.value, ...query }
})
}