refactor: Modal- und Widget-Komponenten umbenannt für bessere Lesbarkeit und Trennung von Seite und UI-Logik

This commit is contained in:
ISA
2025-05-02 07:57:22 +02:00
parent 5afd0b5cb5
commit 1363445388
5 changed files with 16 additions and 25 deletions

View File

@@ -1,5 +1,5 @@
"use client";
// /components/main/einausgaenge/DigitalOutputs.tsx
// /components/main/einausgaenge/DigitalOutputsWidget.tsx
import React from "react";
import { useSelector, useDispatch } from "react-redux";
import { RootState, AppDispatch } from "../../../redux/store";
@@ -9,7 +9,7 @@ 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 }) {
export default function DigitalOutputsWidget({ openOutputModal }) {
const dispatch = useDispatch<AppDispatch>();
const digitalOutputs = useSelector(
(state: RootState) => state.digitalOutputsSlice.outputs

View File

@@ -1,9 +1,9 @@
"use client"; // /components/main/einausgaenge/modals/OutputModal.tsx
"use client"; // /components/main/einausgaenge/modals/DigitalOutputsModal.tsx
import React, { useState, useEffect } from "react";
import { useSelector } from "react-redux";
import { RootState } from "../../../../redux/store";
export default function OutputModal({
export default function DigitalOutputsModal({
selectedOutput,
closeOutputModal,
isOpen,
@@ -39,7 +39,9 @@ export default function OutputModal({
setErrorMsg("");
const updatedOutputs = allOutputs.map((output) =>
output.id === selectedOutput.id ? { ...output, label, status } : output
output.id === selectedOutput.id
? { ...output, label: label.trim(), status }
: output
);
try {
@@ -53,7 +55,10 @@ export default function OutputModal({
const err = await res.json();
setErrorMsg(err?.error || "Fehler beim Speichern.");
} else {
console.log("✅ Änderungen gespeichert");
console.log(
"✅ Status & Label gespeichert für Ausgang",
selectedOutput.id
);
closeOutputModal();
}
} catch (err) {
@@ -93,20 +98,6 @@ export default function OutputModal({
</button>
</div>
<div className="mb-4">
<label className="block font-semibold mb-1">
Timer (Sekunden, optional)
</label>
<input
type="number"
min={0}
value={timer}
onChange={(e) => setTimer(parseInt(e.target.value))}
className="w-full border border-gray-300 rounded px-3 py-2"
placeholder="z.B. 5 für 5 Sekunden"
/>
</div>
{errorMsg && <p className="text-red-600 text-sm mb-2">{errorMsg}</p>}
<div className="flex justify-end gap-2 mt-6">