From eee25bf80f1400c0961bd9725ddbcd615a5d173d Mon Sep 17 00:00:00 2001 From: ISA Date: Wed, 30 Oct 2024 11:15:31 +0100 Subject: [PATCH] feat: Integration von IndexedDB-Datenzugriff in Dashboard-Komponente MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Ersetzt `window`-Zugriff durch `IndexedDB` in der `Dashboard`-Komponente, um Produktionsprobleme zu lösen. - Aktualisiert `KabelModulStatus`, um Alarm- und Fehlerstatus für jeden Slot über IndexedDB zu beziehen. - Fügt zusätzliche States für Alarme (`kueAlarm1`, `kueAlarm2`) und Erdungsfehler (`kueGroundFault`) hinzu und lädt diese aus IndexedDB. - Verbesserte Stabilität und Wartbarkeit durch den Einsatz asynchroner IndexedDB-Aufrufe statt globaler Variablen. --- components/modulesStatus/KabelModulStatus.jsx | 10 +++++++++- pages/dashboard.js | 20 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/components/modulesStatus/KabelModulStatus.jsx b/components/modulesStatus/KabelModulStatus.jsx index b694dc1..9295500 100644 --- a/components/modulesStatus/KabelModulStatus.jsx +++ b/components/modulesStatus/KabelModulStatus.jsx @@ -1,4 +1,12 @@ -const KabelModulStatus = ({ slot, kueCableBreak, isOnline, moduleVersion }) => { +const KabelModulStatus = ({ + slot, + kueCableBreak, + kueAlarm1, + kueAlarm2, + kueGroundFault, + isOnline, + moduleVersion, +}) => { if (!isOnline) { return (
diff --git a/pages/dashboard.js b/pages/dashboard.js index 66ea4e9..f311952 100644 --- a/pages/dashboard.js +++ b/pages/dashboard.js @@ -23,6 +23,9 @@ function Dashboard() { const [error, setError] = useState(null); const [kueCableBreak, setKueCableBreak] = useState([]); const [appVersion, setAppVersion] = useState(""); + const [kueAlarm1, setKueAlarm1] = useState([]); + const [kueAlarm2, setKueAlarm2] = useState([]); + const [kueGroundFault, setKueGroundFault] = useState([]); const router = useRouter(); const parseMessages = (messages) => { @@ -69,6 +72,9 @@ function Dashboard() { const kueCableBreakData = await getFromIndexedDB("kueCableBreak"); const kueOnlineData = await getFromIndexedDB("kueOnline"); const kueVersionData = await getFromIndexedDB("kueVersion"); + const kueAlarm1Data = await getFromIndexedDB("kueAlarm1"); + const kueAlarm2Data = await getFromIndexedDB("kueAlarm2"); + const kueGroundFaultData = await getFromIndexedDB("kueGroundFault"); // Setze die States mit den geladenen Daten setLast20Messages(parseMessages(last20MessagesData || "")); @@ -83,6 +89,17 @@ function Dashboard() { Array.isArray(kueOnlineData) ? kueOnlineData.map(Number) : [] ); setKueVersion(Array.isArray(kueVersionData) ? kueVersionData : []); + setKueAlarm1( + Array.isArray(kueAlarm1Data) ? kueAlarm1Data.map(Number) : [] + ); + setKueAlarm2( + Array.isArray(kueAlarm2Data) ? kueAlarm2Data.map(Number) : [] + ); + setKueGroundFault( + Array.isArray(kueGroundFaultData) + ? kueGroundFaultData.map(Number) + : [] + ); setLoading(false); } catch (error) { console.error("Fehler beim Laden der Daten aus IndexedDB:", error); @@ -127,6 +144,9 @@ function Dashboard() { isOnline={isSlotOnline} moduleVersion={moduleVersion} kueCableBreak={kueCableBreak} + kueAlarm1={kueAlarm1} + kueAlarm2={kueAlarm2} + kueGroundFault={kueGroundFault} />
);