// components/main/system/system.tsx "use client"; import React, { useEffect, useState } from "react"; import { useDispatch, useSelector } from "react-redux"; import { AppDispatch, RootState } from "@/redux/store"; import { getSystemVoltTempThunk } from "@/redux/thunks/getSystemVoltTempThunk"; import { SystemOverviewGrid } from "@/components/main/system/SystemOverviewGrid"; import { SystemCharts } from "@/components/main/system/SystemCharts"; import { DetailModal } from "@/components/main/system/DetailModal"; import type { HistoryEntry } from "@/components/main/system/SystemCharts"; import { getSystemspannung5VplusThunk } from "@/redux/thunks/getSystemspannung5VplusThunk"; import { getSystemspannung15VplusThunk } from "@/redux/thunks/getSystemspannung15VplusThunk"; import { getSystemspannung15VminusThunk } from "@/redux/thunks/getSystemspannung15VminusThunk"; import { getSystemspannung98VminusThunk } from "@/redux/thunks/getSystemspannung98VminusThunk"; import { getTemperaturAdWandlerThunk } from "@/redux/thunks/getTemperaturAdWandlerThunk"; import { getTemperaturProzessorThunk } from "@/redux/thunks/getTemperaturProzessorThunk"; import { ClipLoader } from "react-spinners"; const SystemPage = () => { const dispatch = useDispatch(); const voltages = useSelector( (state: RootState) => state.systemVoltTemp.voltages ); const history = useSelector( (state: RootState) => state.systemVoltTemp.history ) as HistoryEntry[]; const isLoading = !history.length || Object.keys(voltages).length === 0; const [selectedKey, setSelectedKey] = useState(null); const [isModalOpen, setIsModalOpen] = useState(false); const [zeitraum, setZeitraum] = useState<"DIA0" | "DIA1" | "DIA2">("DIA1"); useEffect(() => { dispatch(getSystemVoltTempThunk()); const interval = setInterval(() => { dispatch(getSystemVoltTempThunk()); }, 5000); return () => clearInterval(interval); }, [dispatch]); const handleOpenDetail = (key: string) => { setSelectedKey(key); setIsModalOpen(true); switch (key) { case "+5V": dispatch(getSystemspannung5VplusThunk(zeitraum)); break; case "+15V": dispatch(getSystemspannung15VplusThunk(zeitraum)); break; case "-15V": dispatch(getSystemspannung15VminusThunk(zeitraum)); break; case "-96V": dispatch(getSystemspannung98VminusThunk(zeitraum)); break; case "ADC Temp": dispatch(getTemperaturAdWandlerThunk(zeitraum)); break; case "CPU Temp": dispatch(getTemperaturProzessorThunk(zeitraum)); break; default: break; } }; const handleCloseDetail = () => { setIsModalOpen(false); }; return (

System Spannungen & Temperaturen

{isLoading ? (

Lade Systemdaten … bitte warten

) : ( <> )}
); }; export default SystemPage;