From 5afd0b5cb53ccc2a8d5540db0aaea48b3b2d0a76 Mon Sep 17 00:00:00 2001 From: Ismail Ali Date: Thu, 1 May 2025 19:39:34 +0200 Subject: [PATCH] =?UTF-8?q?feat(digitalOutputs):=20Schaltzustand=20direkt?= =?UTF-8?q?=20=C3=BCber=20Switch-Icon=20=C3=A4nderbar=20+=20sofortiges=20S?= =?UTF-8?q?peichern=20in=20Mock-Datei?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/einausgaenge/DigitalOutputs.tsx | 32 ++++++++++++++++--- config/webVersion.ts | 2 +- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/components/main/einausgaenge/DigitalOutputs.tsx b/components/main/einausgaenge/DigitalOutputs.tsx index c224b54..3508d43 100644 --- a/components/main/einausgaenge/DigitalOutputs.tsx +++ b/components/main/einausgaenge/DigitalOutputs.tsx @@ -1,18 +1,39 @@ "use client"; // /components/main/einausgaenge/DigitalOutputs.tsx import React from "react"; -import { useSelector } from "react-redux"; -import { RootState } from "../../../redux/store"; +import { useSelector, useDispatch } from "react-redux"; +import { RootState, AppDispatch } from "../../../redux/store"; import { Icon } from "@iconify/react"; import settingsIcon from "@iconify/icons-mdi/settings"; import outputIcon from "@iconify/icons-mdi/output"; import switchIcon from "@iconify/icons-ion/switch"; +import { setDigitalOutputs } from "../../../redux/slices/digitalOutputsSlice"; export default function DigitalOutputs({ openOutputModal }) { + const dispatch = useDispatch(); const digitalOutputs = useSelector( (state: RootState) => state.digitalOutputsSlice.outputs ); + const handleToggle = async (id: number) => { + const updatedOutputs = digitalOutputs.map((output) => + output.id === id ? { ...output, status: !output.status } : output + ); + + dispatch(setDigitalOutputs(updatedOutputs)); + + try { + await fetch("/api/cpl/updateDigitalOutputs", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ outputs: updatedOutputs }), + }); + console.log("✅ Status gespeichert für Ausgang", id); + } catch (error) { + console.error("❌ Fehler beim Speichern:", error); + } + }; + return (

@@ -37,7 +58,7 @@ export default function DigitalOutputs({ openOutputModal }) { {output.id} @@ -45,17 +66,18 @@ export default function DigitalOutputs({ openOutputModal }) { handleToggle(output.id)} /> openOutputModal(output)} /> diff --git a/config/webVersion.ts b/config/webVersion.ts index ff9413e..997a161 100644 --- a/config/webVersion.ts +++ b/config/webVersion.ts @@ -6,5 +6,5 @@ 2: Patch oder Hotfix (Bugfixes oder kleine Änderungen). */ -const webVersion = "1.6.334"; +const webVersion = "1.6.335"; export default webVersion;