krishnadhulipalla's picture
First commit
0e11366
import { useEffect } from "react";
import { useMap } from "@vis.gl/react-google-maps";
import type { SelectMeta } from "../../../lib/types";
export default function SingleSelect({
onPick,
}: {
onPick: (ll: [number, number], meta: SelectMeta) => void;
}) {
const map = useMap();
useEffect(() => {
if (!map) return;
map.setOptions({ disableDoubleClickZoom: true });
const onClick = map.addListener("click", (e: google.maps.MapMouseEvent) => {
if (!e.latLng) return;
onPick([e.latLng.lat(), e.latLng.lng()], {
kind: "click",
title: "Selected point",
});
});
const onDbl = map.addListener(
"dblclick",
(e: google.maps.MapMouseEvent) => {
if (!e.latLng) return;
onPick([e.latLng.lat(), e.latLng.lng()], {
kind: "click",
title: "Selected point",
});
}
);
return () => {
google.maps.event.removeListener(onClick);
google.maps.event.removeListener(onDbl);
};
}, [map, onPick]);
return null;
}