diff --git a/app/components/catalog/InfoPanel.vue b/app/components/catalog/InfoPanel.vue index 6026d44..447b680 100644 --- a/app/components/catalog/InfoPanel.vue +++ b/app/components/catalog/InfoPanel.vue @@ -98,8 +98,8 @@ - -
+ +

{{ productsSectionTitle }} @@ -122,6 +122,36 @@

+ +
+
+

+ + {{ $t('catalog.headers.offers') }} + + ({{ relatedOffers.length }}) +

+ +
+ +
+ {{ $t('catalog.empty.noOffers') }} +
+
+ +
+
+

@@ -210,6 +240,7 @@ const emit = defineEmits<{ 'add-to-filter': [] 'open-info': [type: InfoEntityType, uuid: string] 'select-product': [uuid: string | null] + 'select-offer': [offer: { uuid: string; productUuid?: string | null }] 'update:current-tab': [tab: string] 'open-kyc': [uuid: string | undefined] }>() @@ -221,6 +252,7 @@ const { entityColors } = useCatalogSearch() const relatedProducts = computed(() => props.relatedProducts ?? []) const relatedHubs = computed(() => props.relatedHubs ?? []) const relatedSuppliers = computed(() => props.relatedSuppliers ?? []) +const relatedOffers = computed(() => props.relatedOffers ?? []) // Entity name const entityName = computed(() => { @@ -289,6 +321,12 @@ const onProductSelect = (product: InfoProductItem) => { emit('select-product', product.uuid) } +const onOfferSelect = (offer: InfoOfferItem) => { + if (offer.uuid) { + emit('select-offer', { uuid: offer.uuid, productUuid: offer.productUuid }) + } +} + const onHubSelect = (hub: InfoHubItem) => { if (hub.uuid) { emit('open-info', 'hub', hub.uuid) diff --git a/app/pages/catalog/index.vue b/app/pages/catalog/index.vue index b6dbf7b..f9ff3bb 100644 --- a/app/pages/catalog/index.vue +++ b/app/pages/catalog/index.vue @@ -54,6 +54,7 @@ @add-to-filter="onInfoAddToFilter" @open-info="onInfoOpenRelated" @select-product="onInfoSelectProduct" + @select-offer="onSelectOffer" @open-kyc="onOpenKyc" />