Files
CPLv4.0/pages/einstellungen.tsx
2025-04-25 10:09:04 +02:00

74 lines
2.3 KiB
TypeScript

// /pages/einstellungen.tsx
import React, { useState, useEffect } from "react";
import { useAppDispatch } from "../redux/store";
import { fetchSystemSettingsThunk } from "../redux/thunks/fetchSystemSettingsThunk";
import GeneralSettings from "../components/main/settingsPageComponents/GeneralSettings";
import OPCUAInterfaceSettings from "../components/main/settingsPageComponents/OPCUAInterfaceSettings";
import DatabaseSettings from "../components/main/settingsPageComponents/DatabaseSettings";
import NTPSettings from "../components/main/settingsPageComponents/NTPSettings";
export default function Settings() {
const [activeTab, setActiveTab] = useState("tab1");
const dispatch = useAppDispatch();
useEffect(() => {
dispatch(fetchSystemSettingsThunk());
}, [dispatch]);
return (
<div className="p-4">
{/* Tab-Navigation */}
<div className="flex border-b border-gray-200">
<button
className={`px-4 py-2 ${
activeTab === "tab1"
? "border-b-2 border-blue-500 text-blue-500"
: ""
}`}
onClick={() => setActiveTab("tab1")}
>
Allgemeine Einstellungen
</button>
<button
className={`px-4 py-2 ${
activeTab === "tab2"
? "border-b-2 border-blue-500 text-blue-500"
: ""
}`}
onClick={() => setActiveTab("tab2")}
>
OPCUA
</button>
<button
className={`px-4 py-2 ${
activeTab === "tab3"
? "border-b-2 border-blue-500 text-blue-500"
: ""
}`}
onClick={() => setActiveTab("tab3")}
>
Datenbank
</button>
<button
className={`px-4 py-2 ${
activeTab === "tab4"
? "border-b-2 border-blue-500 text-blue-500"
: ""
}`}
onClick={() => setActiveTab("tab4")}
>
NTP
</button>
</div>
{/* Tab-Inhalt */}
<div className="mt-4">
{activeTab === "tab1" && <GeneralSettings />}
{activeTab === "tab2" && <OPCUAInterfaceSettings />}
{activeTab === "tab3" && <DatabaseSettings />}
{activeTab === "tab4" && <NTPSettings />}
</div>
</div>
);
}