feat: Integration von IndexedDB-Datenzugriff in Dashboard-Komponente

- 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.
This commit is contained in:
ISA
2024-10-30 11:15:31 +01:00
parent 1ea583d822
commit eee25bf80f
2 changed files with 29 additions and 1 deletions

View File

@@ -1,4 +1,12 @@
const KabelModulStatus = ({ slot, kueCableBreak, isOnline, moduleVersion }) => {
const KabelModulStatus = ({
slot,
kueCableBreak,
kueAlarm1,
kueAlarm2,
kueGroundFault,
isOnline,
moduleVersion,
}) => {
if (!isOnline) {
return (
<div className="border border-gray-400 w-10 h-20 flex items-center justify-center bg-gray-200">

View File

@@ -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}
/>
</div>
);