From 3a8b002e3326992f03631d353f350aea71b34074 Mon Sep 17 00:00:00 2001 From: ISA Date: Tue, 17 Dec 2024 12:13:11 +0100 Subject: [PATCH] =?UTF-8?q?WIP:=20Checkboxen=20f=C3=BCr=20Marker=20deaktiv?= =?UTF-8?q?ieren=20wenn=20EditMode=20aktive=20ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/DataSheet.js | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/components/DataSheet.js b/components/DataSheet.js index 6528191b5..f7f433ead 100644 --- a/components/DataSheet.js +++ b/components/DataSheet.js @@ -10,6 +10,7 @@ import EditModeToggle from "./EditModeToggle"; import { polylineLayerVisibleState } from "../store/atoms/polylineLayerVisibleState"; // Import für Polyline-Visibility function DataSheet() { + const [editMode, setEditMode] = useState(false); // Zustand für editMode const [poiVisible, setPoiVisible] = useRecoilState(poiLayerVisibleState); const setSelectedArea = useSetRecoilState(selectedAreaState); const [mapLayersVisibility, setMapLayersVisibility] = useRecoilState(mapLayersState); @@ -20,6 +21,7 @@ function DataSheet() { const setZoomTrigger = useSetRecoilState(zoomTriggerState); const [polylineVisible, setPolylineVisible] = useRecoilState(polylineLayerVisibleState); // Zustand für Polylines useEffect(() => { + // LocalStorage Werte laden const storedPoiVisible = localStorage.getItem("poiVisible"); if (storedPoiVisible !== null) { setPoiVisible(storedPoiVisible === "true"); @@ -33,6 +35,10 @@ function DataSheet() { if (storedMapLayersVisibility) { setMapLayersVisibility(JSON.parse(storedMapLayersVisibility)); } + + // EditMode lesen + const storedEditMode = localStorage.getItem("editMode"); + setEditMode(storedEditMode === "true"); }, [setPoiVisible, setMapLayersVisibility]); const handleAreaChange = (event) => { @@ -79,6 +85,7 @@ function DataSheet() { }, [GisStationsStaticDistrict, GisSystemStatic]); const handleCheckboxChange = (key, event) => { + if (editMode) return; // Checkbox deaktiviert bei aktivem EditMode const { checked } = event.target; setMapLayersVisibility((prev) => { const newState = { @@ -129,19 +136,18 @@ function DataSheet() { {/* Checkboxen in einem gemeinsamen Container */}
{systemListing.map((system) => ( - -
- handleCheckboxChange(system.key, e)} // Schlüssel für Logik - id={`system-${system.id}`} - /> - -
-
+
+ handleCheckboxChange(system.key, e)} + id={`system-${system.id}`} + disabled={editMode} // Checkbox deaktiviert, wenn editMode aktiv ist + /> + +
))}