"use client"; import "leaflet/dist/leaflet.css"; import "./mapStyles.css"; import { useMapStore } from "_store/mapStore"; import { MapContainer } from "react-leaflet"; import { BaseMaps } from "_components/map/BaseMaps"; import { ContextMenu } from "_components/map/ContextMenu"; import { MissionLayer } from "_components/map/MissionMarkers"; import { SearchElements } from "_components/map/SearchElements"; import { AircraftLayer } from "_components/map/AircraftMarker"; import { MarkerCluster } from "_components/map/_components/MarkerCluster"; import { useEffect, useRef } from "react"; import { Map as TMap } from "leaflet"; import { DistanceLayer } from "_components/map/Measurement"; const Map = () => { const ref = useRef(null); const { map, setMap } = useMapStore(); useEffect(() => { // Sync map zoom and center with the map store if (ref.current) { ref.current.setView(map.center, map.zoom); } }, [map, setMap]); useEffect(() => { if (ref.current) { const center = ref.current?.getCenter(); const zoom = ref.current?.getZoom(); if (!center.equals(map.center) || zoom !== map.zoom) { ref.current.setView(map.center, map.zoom); } } }, [map.center, map.zoom]); return ( ); }; export default Map;