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

@@ -0,0 +1,36 @@
{
"catalog": {
"filters": {
"product": "Product",
"supplier": "Supplier",
"hub": "Hub",
"location": "Location",
"quantity": "Quantity"
},
"search": {
"placeholder": "Find an offer...",
"searchProducts": "Search products...",
"searchSuppliers": "Search suppliers...",
"searchHubs": "Search hubs..."
},
"hero": {
"title": "Find the best offer",
"subtitle": "Select a product, supplier, or hub to start searching"
},
"headers": {
"selectProduct": "Select a product",
"selectSupplier": "Select a supplier",
"selectHub": "Select a hub",
"hubsForProduct": "Hubs with product",
"productsFromSupplier": "Supplier products",
"productsInHub": "Products in hub",
"offers": "Offers"
},
"empty": {
"noProducts": "No products found",
"noSuppliers": "No suppliers found",
"noHubs": "No hubs found",
"noOffers": "No offers found"
}
}
}

View File

@@ -0,0 +1,36 @@
{
"catalog": {
"filters": {
"product": "Товар",
"supplier": "Поставщик",
"hub": "Хаб",
"location": "Локация",
"quantity": "Количество"
},
"search": {
"placeholder": "Найти предложение...",
"searchProducts": "Поиск товаров...",
"searchSuppliers": "Поиск поставщиков...",
"searchHubs": "Поиск хабов..."
},
"hero": {
"title": "Найдите лучшее предложение",
"subtitle": "Выберите товар, поставщика или хаб для начала поиска"
},
"headers": {
"selectProduct": "Выберите товар",
"selectSupplier": "Выберите поставщика",
"selectHub": "Выберите хаб",
"hubsForProduct": "Хабы с товаром",
"productsFromSupplier": "Товары поставщика",
"productsInHub": "Товары в хабе",
"offers": "Предложения"
},
"empty": {
"noProducts": "Товары не найдены",
"noSuppliers": "Поставщики не найдены",
"noHubs": "Хабы не найдены",
"noOffers": "Предложения не найдены"
}
}
}