import { create } from 'zustand'; import { Coords, PolylineOptions, Polyline } from '../types'; interface MapState { polylines: Polyline[]; polylineCounter: number; addPolyline: (coordinates: Coords[], options: PolylineOptions) => string; removePolyline: (id: string) => void; clearPolylines: () => void; } export const useMapStore = create((set, get) => ({ polylines: [], polylineCounter: 0, addPolyline: (coordinates, options) => { const polylineId = options.id || `polyline-${get().polylineCounter}`; set((state) => ({ polylines: [...state.polylines, { id: polylineId, coordinates, options }], polylineCounter: state.polylineCounter + 1 })); return polylineId; }, removePolyline: (id) => set((state) => ({ polylines: state.polylines.filter(polyline => polyline.id !== id) })), clearPolylines: () => set({ polylines: [], polylineCounter: 0 }) }));