feat: Automatische Aktivierung von TALAS Meldestation bei Aktivierung der Kabelstrecken-Checkbox

- Wenn die Checkbox "Kabelstrecken" aktiviert wird, wird automatisch die Checkbox "TALAS Meldestation" ebenfalls aktiviert.
- Status-Synchronisierung erfolgt über Redux und localStorage.
- TALAS Meldestation kann weiterhin unabhängig deaktiviert werden.
- Wenn die TALAS-Checkbox aktiviert wird, beeinflusst das nicht die Kabelstrecken.
- Stellt sicher, dass bei aktivierten Kabelstrecken die zugehörigen TALAS-Stationen immer sichtbar sind.
This commit is contained in:
Ismail Ali
2025-03-06 20:11:24 +01:00
parent a837291048
commit bed9ce7772
2 changed files with 13 additions and 15 deletions

View File

@@ -31,6 +31,16 @@ function DataSheet() {
const checked = event.target.checked;
dispatch(setPolylineVisible(checked));
localStorage.setItem("polylineVisible", checked);
if (checked) {
// Wenn Kabelstrecken aktiviert wird, TALAS automatisch auch aktivieren
const newMapLayersVisibility = {
...mapLayersVisibility,
TALAS: true,
};
setMapLayersVisibility(newMapLayersVisibility);
localStorage.setItem("mapLayersVisibility", JSON.stringify(newMapLayersVisibility));
}
};
const [bereicheVisible, setBereicheVisible] = useState(false); // NEU: Bereiche-Status
@@ -100,27 +110,15 @@ function DataSheet() {
}, [GisStationsStaticDistrict, GisSystemStatic]);
const handleCheckboxChange = (key, event) => {
if (editMode) return; // Checkbox deaktiviert bei aktivem EditMode
if (editMode) return;
const { checked } = event.target;
// Aktualisiere `polylineVisible` separat
if (key === "TALAS" && !checked) {
setPolylineVisible(false); // Setze den Zustand von Kabelstrecken auf false
localStorage.setItem("polylineVisible", false); // Synchronisiere mit localStorage
}
// Aktualisiere `mapLayersVisibility`
setMapLayersVisibility((prev) => {
const newState = {
...prev,
[key]: checked,
};
const newState = { ...prev, [key]: checked };
localStorage.setItem("mapLayersVisibility", JSON.stringify(newState));
return newState;
});
// Manuell die Überprüfung der Marker aktualisieren
setTimeout(() => {
const event = new Event("visibilityChanged");
window.dispatchEvent(event);