import { useCallback, useState } from "react";

export default function usePois() {
  const [pois, setPois] = useState({})

  const initPois = useCallback((data, formated) => {
    if (!data) return;

    if (formated) {
      setPois(data)
      return;
    }

    const nwPois = data.reduce((acc, poi) => {
      return {
        ...acc,
        [poi.key]: poi.data ? JSON.parse(poi.data) : [],
      }
    }, {})

    setPois(nwPois)
  }, [])
  
  const deletePoi = useCallback((key, val) => {
    if (!pois[key] || !pois[key].length) return;

    const newPois = pois[key].filter((poi) => poi.name !== val.name)

    setPois({
      ...pois,
      [key]: newPois
    })
  }, [pois])

  return [
    pois,
    initPois,
    deletePoi,
  ]
}
