import { popup } from "leaflet"; import { create } from "zustand"; interface MapStore { popup: { isOpen: boolean; lat: number; lng: number; } | null; map: { center: L.LatLngExpression; zoom: number; }; searchElements: { id: number; nodes: { lat: number; lon: number; }[]; tags: { addr: { city?: string; housenumber?: string; postcode?: string; street?: string; suburb?: string; }; building?: string; }; type: string; }[]; setSearchElements: (elements: MapStore["searchElements"]) => void; setPopup: (popup: MapStore["popup"]) => void; searchPopup?: { isOpen: boolean; lat: number; lng: number; elementId: number; }; setSearchPopup: (popup: MapStore["searchPopup"]) => void; } export const useMapStore = create((set, get) => ({ map: { center: [51.5, 10.5], zoom: 6, }, searchElements: [], setSearchPopup: (popup) => set((state) => ({ searchPopup: popup, })), popup: null, setPopup: (popup) => set((state) => ({ popup: popup, })), setSearchElements: (elements) => set((state) => ({ searchElements: elements, })), }));