nuxt-mapbox
Version:
Elegant Mapbox GL JS integration with Nuxt
24 lines (23 loc) • 700 B
JavaScript
import { _useMapboxInstances, computed, ref, shallowRef, triggerRef, watch } from "#imports";
export function useMapboxRef(mapID) {
const instances = _useMapboxInstances();
if (!instances) return ref();
const map = shallowRef(instances.value[mapID]?.map);
watch(instances, () => {
map.value = instances.value[mapID]?.map;
triggerRef(map);
});
return map;
}
export function useMapboxInstance(mapID) {
return useMapboxRef(mapID);
}
export function _useMapboxInstanceWithLoaded(mapID) {
const map = computed(() => {
return _useMapboxInstances()?.value[mapID];
});
return map;
}
export function cleanMapboxInstance(mapID) {
delete _useMapboxInstances()?.value[mapID];
}