@@ -209,6 +231,7 @@ const props = withDefaults(defineProps<{
mapItems?: MapItem[] // Optional separate items for map (if different from list items)
loading?: boolean
withMap?: boolean
+ fullWidthMap?: boolean // Map takes full width (no grid), used after filter selection
useServerClustering?: boolean // Use server-side h3 clustering for ALL points
clusterNodeType?: string // Node type for clustering: 'logistics' | 'offer' | 'supplier'
mapId?: string
@@ -221,6 +244,7 @@ const props = withDefaults(defineProps<{
}>(), {
loading: false,
withMap: true,
+ fullWidthMap: false,
useServerClustering: false,
clusterNodeType: 'logistics',
mapId: 'catalog-map',
diff --git a/app/pages/catalog/index.vue b/app/pages/catalog/index.vue
index 83f8b43..6dcba2d 100644
--- a/app/pages/catalog/index.vue
+++ b/app/pages/catalog/index.vue
@@ -5,6 +5,7 @@
:total-count="currentItems.length"
:grid-columns="3"
:with-map="showMap"
+ :full-width-map="fullWidthMap"
:use-server-clustering="useServerClustering"
:cluster-node-type="clusterNodeType"
map-id="unified-catalog-map"
@@ -126,6 +127,10 @@ const cardType = computed(() => {
const showMap = computed(() => displayMode.value !== 'hero')
+// Full width map when not in select mode (after filter is selected)
+// selectMode is active = grid + map, after selection = only map
+const fullWidthMap = computed(() => !selectMode.value && displayMode.value !== 'hero')
+
// Use server clustering for grids that need it
const useServerClustering = computed(() => {
// Products grid - show offers clusters
diff --git a/i18n/locales/en/catalog.json b/i18n/locales/en/catalog.json
index c4e1eee..084fa25 100644
--- a/i18n/locales/en/catalog.json
+++ b/i18n/locales/en/catalog.json
@@ -32,6 +32,7 @@
"noHubs": "No hubs found",
"noOffers": "No offers found",
"noResults": "No results found"
- }
+ },
+ "offers": "offer | offers"
}
}
diff --git a/i18n/locales/ru/catalog.json b/i18n/locales/ru/catalog.json
index 70f60e1..986463d 100644
--- a/i18n/locales/ru/catalog.json
+++ b/i18n/locales/ru/catalog.json
@@ -32,6 +32,7 @@
"noHubs": "Хабы не найдены",
"noOffers": "Предложения не найдены",
"noResults": "Ничего не найдено"
- }
+ },
+ "offers": "предложение | предложения | предложений"
}
}