diff --git a/app/components/catalog/SelectionPanel.vue b/app/components/catalog/SelectionPanel.vue
index 7f0cbc4..a30de0e 100644
--- a/app/components/catalog/SelectionPanel.vue
+++ b/app/components/catalog/SelectionPanel.vue
@@ -4,7 +4,7 @@
{{ title }}
-
@@ -40,8 +40,7 @@
:product="item"
selectable
compact
- :is-selected="drawerSelectedItem?.uuid === item.uuid"
- @select="onDrawerSelect(item)"
+ @select="onSelect(item)"
/>
@@ -57,8 +56,7 @@
@@ -74,8 +72,7 @@
@@ -90,17 +87,6 @@
-
-
-
-
- {{ $t('catalog.applyFilter') }}
-
-
@@ -124,20 +110,14 @@ const props = defineProps<{
}>()
const emit = defineEmits<{
+ 'select': [type: string, item: Item]
+ 'close': []
'load-more': []
'hover': [uuid: string | null]
}>()
const { t } = useI18n()
-// Get drawer functions from useCatalogSearch
-const {
- drawerSelectedItem,
- selectDrawerItem,
- applyDrawerFilter,
- closeDrawer
-} = useCatalogSearch()
-
const searchQuery = ref('')
const loadMoreSentinel = ref(null)
@@ -206,15 +186,10 @@ const filteredItems = computed(() => {
)
})
-// Select item in drawer (doesn't apply filter yet)
-const onDrawerSelect = (item: Item) => {
- if (item.uuid && item.name) {
- selectDrawerItem(item.uuid, item.name)
+// Select item and emit
+const onSelect = (item: Item) => {
+ if (props.selectMode && item.uuid) {
+ emit('select', props.selectMode, item)
}
}
-
-// Apply filter and close drawer
-const onApplyFilter = () => {
- applyDrawerFilter()
-}
diff --git a/app/pages/catalog/index.vue b/app/pages/catalog/index.vue
index 844dd66..db489ce 100644
--- a/app/pages/catalog/index.vue
+++ b/app/pages/catalog/index.vue
@@ -27,6 +27,8 @@
:loading="selectionLoading"
:loading-more="selectionLoadingMore"
:has-more="selectionHasMore && !filterByBounds"
+ @select="onSelectItem"
+ @close="onCloseDrawer"
@load-more="onLoadMore"
@hover="onHoverItem"
/>
@@ -114,7 +116,8 @@ const {
cancelSelect,
openInfo,
closeInfo,
- setLabel
+ setLabel,
+ closeDrawer
} = useCatalogSearch()
// Info panel composable
@@ -375,15 +378,20 @@ const onMapSelect = async (item: any) => {
setLabel(infoType, itemId, itemName)
}
-// Handle selection from SelectionPanel
+// Handle selection from SelectionPanel - open Info and close drawer
const onSelectItem = (type: string, item: any) => {
if (item.uuid && item.name) {
- // NEW: Open Info instead of selecting directly
openInfo(type as 'hub' | 'supplier' | 'offer', item.uuid)
setLabel(type, item.uuid, item.name)
+ closeDrawer()
}
}
+// Close drawer
+const onCloseDrawer = () => {
+ closeDrawer()
+}
+
// Handle Info panel events
const onInfoClose = () => {
closeInfo()