WIP: Checkboxen für Marker deaktivieren wenn EditMode aktive ist
This commit is contained in:
@@ -10,6 +10,7 @@ import EditModeToggle from "./EditModeToggle";
|
|||||||
import { polylineLayerVisibleState } from "../store/atoms/polylineLayerVisibleState"; // Import für Polyline-Visibility
|
import { polylineLayerVisibleState } from "../store/atoms/polylineLayerVisibleState"; // Import für Polyline-Visibility
|
||||||
|
|
||||||
function DataSheet() {
|
function DataSheet() {
|
||||||
|
const [editMode, setEditMode] = useState(false); // Zustand für editMode
|
||||||
const [poiVisible, setPoiVisible] = useRecoilState(poiLayerVisibleState);
|
const [poiVisible, setPoiVisible] = useRecoilState(poiLayerVisibleState);
|
||||||
const setSelectedArea = useSetRecoilState(selectedAreaState);
|
const setSelectedArea = useSetRecoilState(selectedAreaState);
|
||||||
const [mapLayersVisibility, setMapLayersVisibility] = useRecoilState(mapLayersState);
|
const [mapLayersVisibility, setMapLayersVisibility] = useRecoilState(mapLayersState);
|
||||||
@@ -20,6 +21,7 @@ function DataSheet() {
|
|||||||
const setZoomTrigger = useSetRecoilState(zoomTriggerState);
|
const setZoomTrigger = useSetRecoilState(zoomTriggerState);
|
||||||
const [polylineVisible, setPolylineVisible] = useRecoilState(polylineLayerVisibleState); // Zustand für Polylines
|
const [polylineVisible, setPolylineVisible] = useRecoilState(polylineLayerVisibleState); // Zustand für Polylines
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
// LocalStorage Werte laden
|
||||||
const storedPoiVisible = localStorage.getItem("poiVisible");
|
const storedPoiVisible = localStorage.getItem("poiVisible");
|
||||||
if (storedPoiVisible !== null) {
|
if (storedPoiVisible !== null) {
|
||||||
setPoiVisible(storedPoiVisible === "true");
|
setPoiVisible(storedPoiVisible === "true");
|
||||||
@@ -33,6 +35,10 @@ function DataSheet() {
|
|||||||
if (storedMapLayersVisibility) {
|
if (storedMapLayersVisibility) {
|
||||||
setMapLayersVisibility(JSON.parse(storedMapLayersVisibility));
|
setMapLayersVisibility(JSON.parse(storedMapLayersVisibility));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// EditMode lesen
|
||||||
|
const storedEditMode = localStorage.getItem("editMode");
|
||||||
|
setEditMode(storedEditMode === "true");
|
||||||
}, [setPoiVisible, setMapLayersVisibility]);
|
}, [setPoiVisible, setMapLayersVisibility]);
|
||||||
|
|
||||||
const handleAreaChange = (event) => {
|
const handleAreaChange = (event) => {
|
||||||
@@ -79,6 +85,7 @@ function DataSheet() {
|
|||||||
}, [GisStationsStaticDistrict, GisSystemStatic]);
|
}, [GisStationsStaticDistrict, GisSystemStatic]);
|
||||||
|
|
||||||
const handleCheckboxChange = (key, event) => {
|
const handleCheckboxChange = (key, event) => {
|
||||||
|
if (editMode) return; // Checkbox deaktiviert bei aktivem EditMode
|
||||||
const { checked } = event.target;
|
const { checked } = event.target;
|
||||||
setMapLayersVisibility((prev) => {
|
setMapLayersVisibility((prev) => {
|
||||||
const newState = {
|
const newState = {
|
||||||
@@ -129,19 +136,18 @@ function DataSheet() {
|
|||||||
{/* Checkboxen in einem gemeinsamen Container */}
|
{/* Checkboxen in einem gemeinsamen Container */}
|
||||||
<div className="flex flex-col gap-2">
|
<div className="flex flex-col gap-2">
|
||||||
{systemListing.map((system) => (
|
{systemListing.map((system) => (
|
||||||
<React.Fragment key={system.id}>
|
<div className="flex items-center" key={system.id}>
|
||||||
<div className="flex items-center">
|
<input
|
||||||
<input
|
type="checkbox"
|
||||||
type="checkbox"
|
checked={mapLayersVisibility[system.key] || false}
|
||||||
checked={mapLayersVisibility[system.key] || false} // Schlüssel für Logik
|
onChange={(e) => handleCheckboxChange(system.key, e)}
|
||||||
onChange={(e) => handleCheckboxChange(system.key, e)} // Schlüssel für Logik
|
id={`system-${system.id}`}
|
||||||
id={`system-${system.id}`}
|
disabled={editMode} // Checkbox deaktiviert, wenn editMode aktiv ist
|
||||||
/>
|
/>
|
||||||
<label htmlFor={`system-${system.id}`} className="text-sm ml-2">
|
<label htmlFor={`system-${system.id}`} className="text-sm ml-2">
|
||||||
{system.name} {/* Anzeigename */}
|
{system.name}
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</React.Fragment>
|
|
||||||
))}
|
))}
|
||||||
|
|
||||||
<div className="flex items-center">
|
<div className="flex items-center">
|
||||||
|
|||||||
Reference in New Issue
Block a user