Skip to content

Commit e43e3e7

Browse files
fix: use gmp-click events with AdvancedMarkerElement (#954)
This fixes the warning: `Please use addEventListener('gmp-click', ...) instead of addEventListener('click', ...).` which occurs when advanced markers are used. --------- Co-authored-by: Martin Schuhfuss <[email protected]>
1 parent a96ee77 commit e43e3e7

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

src/markerclusterer.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,8 @@ describe.each(markerClasses)(
253253
clusters.forEach((cluster) => {
254254
expect(MarkerUtils.setMap).toBeCalledWith(cluster.marker, map);
255255
expect(cluster.marker?.addListener).toHaveBeenCalledWith(
256-
"click",
256+
// legacy Marker uses 'click' events, whereas AdvancedMarkerElement uses 'gmp-click'
257+
MarkerUtils.isAdvancedMarker(cluster.marker!) ? "gmp-click" : "click",
257258
expect.any(Function)
258259
);
259260
});

src/markerclusterer.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ export enum MarkerClustererEvents {
5252
CLUSTERING_BEGIN = "clusteringbegin",
5353
CLUSTERING_END = "clusteringend",
5454
CLUSTER_CLICK = "click",
55+
GMP_CLICK = "gmp-click",
5556
}
5657

5758
export const defaultOnClusterClickHandler: onClusterClickHandler = (
@@ -259,8 +260,15 @@ export class MarkerClusterer extends OverlayViewSafe {
259260
// Make sure all individual markers are removed from the map.
260261
cluster.markers.forEach((marker) => MarkerUtils.setMap(marker, null));
261262
if (this.onClusterClick) {
263+
// legacy Marker uses 'click' events, whereas AdvancedMarkerElement uses 'gmp-click'
264+
const markerClickEventName = MarkerUtils.isAdvancedMarker(
265+
cluster.marker
266+
)
267+
? MarkerClustererEvents.GMP_CLICK
268+
: MarkerClustererEvents.CLUSTER_CLICK;
269+
262270
cluster.marker.addListener(
263-
"click",
271+
markerClickEventName,
264272
/* istanbul ignore next */
265273
(event: google.maps.MapMouseEvent) => {
266274
google.maps.event.trigger(

0 commit comments

Comments
 (0)