UNPKG

nuxt-mapbox

Version:

Elegant Mapbox GL JS integration with Nuxt

26 lines (25 loc) 771 B
import { watchOnce } from "@vueuse/core"; import { _useMapboxInstanceWithLoaded } from "#imports"; export function useMapbox(mapID, callback) { function tryCallback(instance) { if (!instance?.value?.map) return false; if (instance.value.map && instance.value.loaded) { callback(instance.value.map); } else { watchOnce(() => instance.value?.loaded, () => { if (instance.value?.loaded) { callback(instance.value.map); } }); } return true; } const mapboxInstance = _useMapboxInstanceWithLoaded(mapID); const callbackDone = tryCallback(mapboxInstance); if (callbackDone) return; watchOnce(mapboxInstance, () => { if (mapboxInstance.value?.map) { tryCallback(mapboxInstance); } }); }