"use client"; // /components/main/settingsPageComponents/GeneralSettings.tsx import React, { useState, useEffect } from "react"; import { RootState } from "../../../redux/store"; import { useSelector } from "react-redux"; import handleClearDatabase from "./handlers/handleClearDatabase"; import handleReboot from "./handlers/handleReboot"; import handleSetDateTime from "./handlers/handleSetDateTime"; import handleSubmit from "./handlers/handleSubmit"; 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"; 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] = 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 [ntp1, setNtp1] = useState(systemSettings.ntp1 || ""); const [ntp2, setNtp2] = useState(systemSettings.ntp2 || ""); const [ntp3, setNtp3] = useState(systemSettings.ntp3 || ""); const [ntpTimezone, setNtpTimezone] = useState( systemSettings.ntpTimezone || "" ); const [active, setActive] = useState(systemSettings.ntpActive || false); const handleLogin = async () => { handleAdminLogin( username, password, () => { setLoginSuccess(true); setError(""); }, (errorMsg) => { setLoginSuccess(false); setError(errorMsg); }, dispatch // ✅ hier übergeben ); }; //------------------------------- useEffect(() => { if (!systemSettings.deviceName) { dispatch(fetchSystemSettingsThunk()); } }, []); //------------------------------- return (

Allgemeine Einstellungen

{/* ✅ Geräte-Name */}
setName(e.target.value)} />
{/* ✅ MAC Adresse (nur Anzeige) */}
{/* ✅ Systemzeit & Setzen */}
{/* ✅ Netzwerk-Einstellungen */}
setIp(e.target.value)} />
setSubnet(e.target.value)} />
setGateway(e.target.value)} />
{/* ✅ Admin-Login/Logout */}
{isAdminLoggedIn ? ( ) : ( <> setUsername(e.target.value)} /> setPassword(e.target.value)} /> )}
{/* ✅ Feedback für den Benutzer */} {loginSuccess && (

Login erfolgreich!

)} {error &&

{error}

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