4
4
5
5
<script lang="ts">
6
6
import { MarkerClusterer , type MarkerClustererOptions } from ' @googlemaps/markerclusterer'
7
- import { inject , onUnmounted , provide , ref , shallowRef , type InjectionKey , type ShallowRef } from ' vue'
7
+ import { inject , onUnmounted , provide , shallowRef , type InjectionKey , type ShallowRef } from ' vue'
8
8
import { whenever } from ' @vueuse/core'
9
9
import { MAP_INJECTION_KEY } from ' ./ScriptGoogleMaps.vue'
10
10
11
11
export const MARKER_CLUSTERER_INJECTION_KEY = Symbol (' marker-clusterer' ) as InjectionKey <{
12
12
markerClusterer: ShallowRef <MarkerClusterer | undefined >
13
- reportMarkerRemoval : () => void
13
+ requestRerender : () => void
14
14
}>
15
15
</script >
16
16
@@ -45,9 +45,9 @@ whenever(() => mapContext?.map.value, (map) => {
45
45
once: true ,
46
46
})
47
47
48
- const markerClustererNeedsRerender = ref (false )
48
+ const markerClustererNeedsRerender = shallowRef (false )
49
49
50
- function reportMarkerRemoval () {
50
+ function requestRerender () {
51
51
markerClustererNeedsRerender .value = true
52
52
}
53
53
@@ -67,7 +67,13 @@ onUnmounted(() => {
67
67
markerClusterer .value .setMap (null )
68
68
})
69
69
70
- provide (MARKER_CLUSTERER_INJECTION_KEY , { markerClusterer , reportMarkerRemoval })
70
+ provide (
71
+ MARKER_CLUSTERER_INJECTION_KEY ,
72
+ {
73
+ markerClusterer ,
74
+ requestRerender ,
75
+ },
76
+ )
71
77
72
78
function setupMarkerClustererEventListeners(markerClusterer : MarkerClusterer ) {
73
79
markerClustererEvents .forEach ((event ) => {
0 commit comments