"use client"; import React, { useState } from "react"; import { useSelector } from "react-redux"; import { RootState, useAppDispatch } from "../../../../../redux/store"; import { updateKvzData } from "../../../../../redux/thunks/kvzThunks"; import { useAdminAuth } from "../../../settingsPageComponents/hooks/useAdminAuth"; type KvzData = { // Hier können später weitere KVz-spezifische Einstellungen hinzugefügt werden kvzSettings: string; }; interface Props { slot: number; onClose?: () => void; } export default function KvzModalView({ slot, onClose }: Props) { const { isAdminLoggedIn } = useAdminAuth(true); const dispatch = useAppDispatch(); const kvzSlice = useSelector((state: RootState) => state.kueDataSlice); // KVZ System: 32 Slots mit je 4 LEDs const isKvzPresent = kvzSlice.kvzPresence?.[slot] === 1; const isKvzActive = kvzSlice.kvzActive?.[slot] === 1; // LED Status für diesen Slot (4 LEDs pro Slot) const getKvzLedStatus = (ledIndex: number) => { const arrayIndex = slot * 4 + ledIndex; return kvzSlice.kvzStatus?.[arrayIndex] === 1; }; const [localKvzActive, setLocalKvzActive] = useState(() => isKvzActive); // Synchronisiere localState mit Redux State React.useEffect(() => { setLocalKvzActive(isKvzActive); }, [isKvzActive]); const handleKvzToggle = async () => { const newState = !localKvzActive; setLocalKvzActive(newState); try { // API Update mit neuem Thunk - kvzActive statt kvzPresence await dispatch( updateKvzData([{ key: "kvzActive", slot, value: newState ? 1 : 0 }]) ); const msg = newState ? "✅ KVz wurde aktiviert." : "⚠️ KVz wurde deaktiviert."; alert(msg); location.reload(); } catch (error) { console.error("Fehler beim KVz-Toggle:", error); alert("Fehler beim Umschalten der KVz-Funktion."); // State zurücksetzen bei Fehler setLocalKvzActive(!newState); } }; return (
Kein KVZ-Gerät vorhanden
Für Slot {slot + 1} ist kein KVZ-Gerät installiert oder
konfiguriert.
Nur Admin-Benutzer können diese Einstellungen ändern.