feat: Digitale Ausgänge aus Redux-Store in UI integriert

- DigitalOutputs.tsx auf Redux umgestellt, um Werte direkt aus dem Store zu lesen
- toggleSwitch-Funktion angepasst, um den Status von digitalen Ausgängen in Redux zu aktualisieren
- useDigitalOutputsData.ts nutzt nun Redux zum Speichern der `win_da_state` und `win_da_bezeichnung` Werte
- Entfernen von Prop `digitalOutputs` in `DigitalOutputs.tsx`, da Redux nun als Datenquelle dient
- Weboberfläche zeigt nun digitale Ausgänge korrekt an und Status kann geändert werden
This commit is contained in:
Ismail Ali
2025-02-23 22:31:06 +01:00
parent 1449dd458d
commit 65cfb033a5
9 changed files with 162 additions and 59 deletions

View File

@@ -47,6 +47,8 @@ function MyApp({ Component, pageProps }: AppProps) {
de,
de_label,
de_state,
da_state,
da_bezeichnung,
...restVariables
} = variables;

View File

@@ -1,5 +1,6 @@
"use client"; // pages/einausgaenge.tsx
"use client";
import React, { useState } from "react";
import DigitalOutputs from "../components/main/einausgaenge/DigitalOutputs";
import DigitalInputs from "../components/main/einausgaenge/DigitalInputs";
@@ -7,14 +8,13 @@ import InputModal from "../components/main/einausgaenge/modals/InputModal";
import OutputModal from "../components/main/einausgaenge/modals/OutputModal";
import { useDigitalInputData } from "../hooks/einausgaenge/useDigitalInputsData";
import { useDigitalOutputs } from "../hooks/einausgaenge/useDigitalOutputsData";
import { useDispatch } from "react-redux";
import { setDigitalOutputs } from "../redux/slices/digitalOutputsSlice";
function EinAusgaenge() {
// Verwendung des benutzerdefinierten Hooks für digitale Ausgänge
const {
digitalOutputs,
isLoading: isLoadingOutputs,
setDigitalOutputs,
} = useDigitalOutputs();
const dispatch = useDispatch();
const { digitalOutputs, isLoading: isLoadingOutputs } = useDigitalOutputs();
const { mockData, isLoading: isLoadingInputs } = useDigitalInputData();
// Zustand für Modale
const [selectedInput, setSelectedInput] = useState(null);
@@ -22,16 +22,12 @@ function EinAusgaenge() {
const [isInputModalOpen, setIsInputModalOpen] = useState(false);
const [isOutputModalOpen, setIsOutputModalOpen] = useState(false);
// Laden der digitalen Eingänge
const { mockData, isLoading: isLoadingInputs } = useDigitalInputData();
// Funktion zum Umschalten des Ausgangs
const toggleSwitch = (id: number) => {
setDigitalOutputs((prevOutputs) =>
prevOutputs.map((output) =>
output.id === id ? { ...output, toggle: !output.toggle } : output
)
const updatedOutputs = digitalOutputs.map((output) =>
output.id === id ? { ...output, status: !output.status } : output
);
dispatch(setDigitalOutputs(updatedOutputs));
};
// Funktionen zum Öffnen und Schließen der Modale