From 4bc01500a37ec1eff859a616867db76ca4d01415 Mon Sep 17 00:00:00 2001 From: Ilya Shaplyko Date: Fri, 30 May 2025 23:12:02 +0200 Subject: [PATCH] fix: properly handle centerMarker removal logic - Add explicit centerMarker: true default to props - Fix center marker removal logic to respect centerMarker prop state - Resolves issue where center markers persisted when centerMarker=false --- src/runtime/components/ScriptGoogleMaps.vue | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/runtime/components/ScriptGoogleMaps.vue b/src/runtime/components/ScriptGoogleMaps.vue index b9baa23d..32f0c65b 100644 --- a/src/runtime/components/ScriptGoogleMaps.vue +++ b/src/runtime/components/ScriptGoogleMaps.vue @@ -105,6 +105,7 @@ const props = withDefaults(defineProps<{ trigger: ['mouseenter', 'mouseover', 'mousedown'], width: 640, height: 400, + centerMarker: true }) const emits = defineEmits<{ @@ -306,7 +307,7 @@ onMounted(() => { // do a diff of next and prev const centerHash = hash({ position: options.value.center }) for (const key of toRemove) { - if (key === centerHash) { + if (props.centerMarker && key === centerHash) { continue } const marker = await mapMarkers.value.get(key) @@ -335,7 +336,7 @@ onMounted(() => { center = await resolveQueryToLatLang(center as string) } map.value!.setCenter(center as google.maps.LatLng) - if (typeof props.centerMarker === 'undefined' || props.centerMarker) { + if (props.centerMarker) { if (options.value.mapId) { // not allowed to use advanced markers with styles return @@ -418,7 +419,7 @@ const placeholder = computed(() => { style: props.mapOptions?.styles ? transformMapStyles(props.mapOptions.styles) : undefined, markers: [ ...(props.markers || []), - (typeof props.centerMarker === 'undefined' || props.centerMarker) && center, + props.centerMarker && center, ] .filter(Boolean) .map((m) => {