@vis.gl/react-google-maps
Version:
React components and hooks for the Google Maps JavaScript API
21 lines (17 loc) • 535 B
text/typescript
/* eslint-disable @typescript-eslint/no-explicit-any */
import {useEffect} from 'react';
/**
* Internally used to bind events to Maps JavaScript API objects.
* @internal
*/
export function useMapsEventListener<T extends (...args: any[]) => void>(
target?: object | null,
name?: string,
callback?: T | null
) {
useEffect(() => {
if (!target || !name || !callback) return;
const listener = google.maps.event.addListener(target, name, callback);
return () => listener.remove();
}, [target, name, callback]);
}