"use client"; import React, { useState, useEffect } from "react"; import { RootState } from "../../../redux/store"; import { useSelector } from "react-redux"; import handleClearDatabase from "./handlers/dbHandlers/handleClearDatabase"; import handleReboot from "./handlers/handleReboot"; import handleSetDateTime from "./handlers/handleSetDateTime"; import { useAdminAuth } from "./hooks/useAdminAuth"; import handleAdminLogin from "./handlers/handleAdminLogin"; import { useDispatch } from "react-redux"; import { AppDispatch } from "../../../redux/store"; import { fetchSystemSettingsThunk } from "../../../redux/thunks/fetchSystemSettingsThunk"; import handleGeneralSubmit from "./handlers/handleGeneralSubmit"; const GeneralSettings: React.FC = () => { const dispatch = useDispatch(); const systemSettings = useSelector( (state: RootState) => state.systemSettingsSlice ); const { isAdminLoggedIn, logoutAdmin } = useAdminAuth(true); const [loginSuccess, setLoginSuccess] = useState(false); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [error, setError] = useState(""); const [name, setName] = useState(systemSettings.deviceName || ""); const [mac1, setMac1] = useState(systemSettings.mac1 || ""); const [ip, setIp] = useState(systemSettings.ip || ""); const [subnet, setSubnet] = useState(systemSettings.subnet || ""); const [gateway, setGateway] = useState(systemSettings.gateway || ""); const [systemUhr, setSystemUhr] = useState( systemSettings.cplInternalTimestamp || "" ); const handleLogin = async () => { handleAdminLogin( username, password, () => { setLoginSuccess(true); setError(""); }, (errorMsg) => { setLoginSuccess(false); setError(errorMsg); }, dispatch ); }; useEffect(() => { if (!systemSettings.deviceName) { dispatch(fetchSystemSettingsThunk()); } }, []); /* fix: Initialwerte in Allgemeine Einstellungen bei Seitenaufruf setzen - useEffect hinzugefügt, um lokale States mit Redux-Daten zu synchronisieren - Problem behoben, dass Felder beim ersten Laden leer waren */ useEffect(() => { setName(systemSettings.deviceName || ""); setIp(systemSettings.ip || ""); setSubnet(systemSettings.subnet || ""); setGateway(systemSettings.gateway || ""); setSystemUhr(systemSettings.cplInternalTimestamp || ""); setMac1(systemSettings.mac1 || ""); }, [systemSettings]); return (

Allgemeine Einstellungen

{/* Geräte-Name */}
setName(e.target.value)} />
{/* MAC Adresse */}
{/* Systemzeit */}
{/* Netzwerk */}
setIp(e.target.value)} />
setSubnet(e.target.value)} />
setGateway(e.target.value)} />
{/* Admin Login */} {/*
{isAdminLoggedIn ? ( ) : ( <>
setUsername(e.target.value)} /> setPassword(e.target.value)} />
)}
*/} {/* Feedback */} {loginSuccess && (

Login erfolgreich!

)} {error &&

{error}

} {/* Buttons */}
); }; export default GeneralSettings;