nuxt-mapbox
Version:
Elegant Mapbox GL JS integration with Nuxt
22 lines (21 loc) • 557 B
JavaScript
import { watch, useMapboxPopupRef } from "#imports";
export function useMapboxPopup(popupID, callback) {
let callbackDone = false;
const popup = useMapboxPopupRef(popupID);
if (!popup.value) {
const killWatch = watch(() => popup.value, () => {
if (popup.value?.getElement?.()) {
if (!callbackDone) {
callback(popup.value);
callbackDone = true;
killWatch();
}
}
}, { deep: true });
} else {
if (!callbackDone) {
callback(popup.value);
callbackDone = true;
}
}
}