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 @@ - - -
- -
@@ -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()