Open info on map click without pinning
All checks were successful
Build Docker Image / build (push) Successful in 4m47s
All checks were successful
Build Docker Image / build (push) Successful in 4m47s
This commit is contained in:
@@ -91,7 +91,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { GetOffersDocument, GetOfferDocument, type GetOffersQueryVariables } from '~/composables/graphql/public/exchange-generated'
|
import { GetOffersDocument, type GetOffersQueryVariables } from '~/composables/graphql/public/exchange-generated'
|
||||||
import { GetNodeDocument, NearestOffersDocument, QuoteCalculationsDocument, type QuoteCalculationsQueryResult } from '~/composables/graphql/public/geo-generated'
|
import { GetNodeDocument, NearestOffersDocument, QuoteCalculationsDocument, type QuoteCalculationsQueryResult } from '~/composables/graphql/public/geo-generated'
|
||||||
import type { MapBounds } from '~/components/catalog/CatalogMap.vue'
|
import type { MapBounds } from '~/components/catalog/CatalogMap.vue'
|
||||||
|
|
||||||
@@ -611,7 +611,7 @@ interface MapSelectItem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Handle map item selection
|
// Handle map item selection
|
||||||
const onMapSelect = async (item: MapSelectItem) => {
|
const onMapSelect = (item: MapSelectItem) => {
|
||||||
// Get uuid from item - clusters use 'id', regular items use 'uuid'
|
// Get uuid from item - clusters use 'id', regular items use 'uuid'
|
||||||
const itemId = item.uuid || item.id
|
const itemId = item.uuid || item.id
|
||||||
if (!itemId || itemId.startsWith('cluster-')) return
|
if (!itemId || itemId.startsWith('cluster-')) return
|
||||||
@@ -620,42 +620,7 @@ const onMapSelect = async (item: MapSelectItem) => {
|
|||||||
|
|
||||||
const itemType = (item as MapSelectItem & { type?: 'hub' | 'supplier' | 'offer' }).type
|
const itemType = (item as MapSelectItem & { type?: 'hub' | 'supplier' | 'offer' }).type
|
||||||
|
|
||||||
// If in selection mode, use map click to fill the selector
|
// Default behavior - open Info directly
|
||||||
if (selectMode.value) {
|
|
||||||
// For hubs selection - click on hub fills hub selector
|
|
||||||
if (selectMode.value === 'hub' && (itemType === 'hub' || mapViewMode.value === 'hubs')) {
|
|
||||||
selectItem('hub', itemId, itemName)
|
|
||||||
showQuoteResults.value = false
|
|
||||||
offers.value = []
|
|
||||||
quoteCalculations.value = []
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// For supplier selection - click on supplier fills supplier selector
|
|
||||||
if (selectMode.value === 'supplier' && (itemType === 'supplier' || mapViewMode.value === 'suppliers')) {
|
|
||||||
selectItem('supplier', itemId, itemName)
|
|
||||||
showQuoteResults.value = false
|
|
||||||
offers.value = []
|
|
||||||
quoteCalculations.value = []
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// For product selection viewing offers - fetch offer to get productUuid
|
|
||||||
if (selectMode.value === 'product' && (itemType === 'offer' || mapViewMode.value === 'offers')) {
|
|
||||||
// Fetch offer details to get productUuid (not available in cluster data)
|
|
||||||
const data = await execute(GetOfferDocument, { uuid: itemId }, 'public', 'exchange')
|
|
||||||
const offer = data?.getOffer
|
|
||||||
if (offer?.productUuid) {
|
|
||||||
selectItem('product', offer.productUuid, offer.productName || itemName)
|
|
||||||
showQuoteResults.value = false
|
|
||||||
offers.value = []
|
|
||||||
quoteCalculations.value = []
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// NEW: Default behavior - open Info directly
|
|
||||||
let infoType: 'hub' | 'supplier' | 'offer'
|
let infoType: 'hub' | 'supplier' | 'offer'
|
||||||
if (itemType === 'hub' || mapViewMode.value === 'hubs') infoType = 'hub'
|
if (itemType === 'hub' || mapViewMode.value === 'hubs') infoType = 'hub'
|
||||||
else if (itemType === 'supplier' || mapViewMode.value === 'suppliers') infoType = 'supplier'
|
else if (itemType === 'supplier' || mapViewMode.value === 'suppliers') infoType = 'supplier'
|
||||||
|
|||||||
Reference in New Issue
Block a user