Files
webapp/app/components/catalog/CatalogHero.vue
Ruslan Bakiev 08d7e0ade9
All checks were successful
Build Docker Image / build (push) Successful in 3m23s
Implement unified catalog search with token-based filtering
- 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
2026-01-22 10:57:30 +07:00

43 lines
1.1 KiB
Vue

<template>
<div class="flex flex-col items-center justify-center min-h-[60vh] text-center px-4">
<h1 class="text-4xl font-bold mb-4">{{ t('catalog.hero.title') }}</h1>
<p class="text-lg text-base-content/70 mb-8 max-w-lg">
{{ t('catalog.hero.subtitle') }}
</p>
<div class="flex flex-wrap justify-center gap-4">
<button
class="btn btn-lg btn-primary gap-2"
@click="$emit('start-select', 'product')"
>
<Icon name="lucide:package" size="24" />
{{ t('catalog.filters.product') }}
</button>
<button
class="btn btn-lg btn-outline gap-2"
@click="$emit('start-select', 'supplier')"
>
<Icon name="lucide:factory" size="24" />
{{ t('catalog.filters.supplier') }}
</button>
<button
class="btn btn-lg btn-outline gap-2"
@click="$emit('start-select', 'hub')"
>
<Icon name="lucide:map-pin" size="24" />
{{ t('catalog.filters.hub') }}
</button>
</div>
</div>
</template>
<script setup lang="ts">
defineEmits<{
(e: 'start-select', type: string): void
}>()
const { t } = useI18n()
</script>