"use client"; // components/header/settingsModal/SettingsModal.tsx import React, { useState, useEffect } from "react"; import ReactModal from "react-modal"; import "bootstrap-icons/font/bootstrap-icons.css"; 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 bcrypt from "bcryptjs"; import CryptoJS from "crypto-js"; import { useAdminAuth } from "./hooks/useAdminAuth"; import { useSystemSettings } from "./hooks/useSystemSettings"; import { generateKeyAndIV, generateToken } from "./utils/cryptoUtils"; import USERS from "./config/users"; import handleAdminLogin from "./handlers/handleAdminLogin"; ReactModal.setAppElement("#__next"); function SettingModal({ showModal, onClose }) { const { isAdminLoggedIn, logoutAdmin } = useAdminAuth(showModal); const { formValues, setFormValues } = useSystemSettings(showModal); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [error, setError] = useState(""); const [showLoginForm, setShowLoginForm] = useState(false); const deviceName_Redux = useSelector( (state: RootState) => state.systemSettingsSlice.deviceName ); const mac1_Redux = useSelector( (state: RootState) => state.systemSettingsSlice.mac1 ); const ip_Redux = useSelector( (state: RootState) => state.systemSettingsSlice.ip ); const subnet_Redux = useSelector( (state: RootState) => state.systemSettingsSlice.subnet ); const gateway_Redux = useSelector( (state: RootState) => state.systemSettingsSlice.gateway ); const datetime_Redux = useSelector( (state: RootState) => state.systemSettingsSlice.cplInternalTimestamp ); const ntp1_Redux = useSelector( (state: RootState) => state.systemSettingsSlice.ntp1 ); const ntp2_Redux = useSelector( (state: RootState) => state.systemSettingsSlice.ntp2 ); const ntp3_Redux = useSelector( (state: RootState) => state.systemSettingsSlice.ntp3 ); const ntpTimezone_Redux = useSelector( (state: RootState) => state.systemSettingsSlice.ntpTimezone ); const active_Redux = useSelector( (state: RootState) => state.systemSettingsSlice.ntpActive ); const [name, setName] = useState(deviceName_Redux || ""); const [mac1, setMac1] = useState(mac1_Redux || ""); const [ip, setIp] = useState(ip_Redux || ""); const [subnet, setSubnet] = useState(subnet_Redux || ""); const [gateway, setGateway] = useState(gateway_Redux || ""); const [systemUhr, setSystemUhr] = useState(datetime_Redux || ""); const [ntp1, setNtp1] = useState(ntp1_Redux || ""); const [ntp2, setNtp2] = useState(ntp2_Redux || ""); const [ntp3, setNtp3] = useState(ntp3_Redux || ""); const [ntpTimezone, setNtpTimezone] = useState(ntpTimezone_Redux || ""); const [active, setActive] = useState(active_Redux || ""); const [originalValues, setOriginalValues] = useState({}); const currentValues = { name, ip, subnet, gateway, ntp1, ntp2, ntp3, ntpTimezone, active, }; return (

System:

{/* Name */}
setName(e.target.value)} />
{/* MAC Adresse und Systemuhr */}
{/* IP-Konfiguration */}
setIp(e.target.value)} />
setSubnet(e.target.value)} />
setGateway(e.target.value)} />
{/* SNTP Client */}

SNTP Client:

setNtp1(e.target.value)} />
setNtp2(e.target.value)} />
setNtp3(e.target.value)} />
setNtpTimezone(e.target.value)} />
setActive(e.target.value)} />
{/* Buttons: Skaliert für große Screens */}
); } export default SettingModal;