import L from "leaflet"
import { Ref, onMounted, ref } from "vue"

function useGeoJson(map:Ref<L.Map>,json:GeoJSON.GeoJsonObject|GeoJSON.GeoJsonObject[],){
    const geoJson = ref<L.GeoJSON>()

    onMounted(()=>{
        geoJson.value = L.geoJSON(json,)
    })

    function open(){
        if (!geoJson.value) return;
        if (!map.value) return;
        geoJson.value.addTo(map.value)
    }

    function close(){
        if (!geoJson.value) return;
        if (!map.value) return;
        geoJson.value.removeFrom(map.value)
    }

    return [geoJson,open,close]
}

export default useGeoJson