diff --git a/components/modales/KueModal.jsx b/components/modales/KueModal.jsx index 975f5d8..ce02604 100644 --- a/components/modales/KueModal.jsx +++ b/components/modales/KueModal.jsx @@ -1,10 +1,12 @@ "use client"; // components/modales/KueModal.jsx import ReactModal from "react-modal"; import { useState, useEffect } from "react"; -import { useSelector } from "react-redux"; +import { useSelector, useDispatch } from "react-redux"; +import { updateValues } from "../../store/variablesSlice"; import "bootstrap-icons/font/bootstrap-icons.css"; // Import Bootstrap Icons function KueModal({ showModal, onClose, slot, onModulNameChange }) { + const dispatch = useDispatch(); const [ids, setIds] = useState(Array(32).fill("---")); const [bezeichnungen, setBezeichnungen] = useState(Array(32).fill("---")); const [isolationsgrenzwerte, setIsolationsgrenzwerte] = useState( @@ -114,23 +116,25 @@ function KueModal({ showModal, onClose, slot, onModulNameChange }) { alert("Daten erfolgreich gespeichert!"); onModulNameChange(ids[slot]); - // Aktualisieren der originalValues und lokalen State-Werte nach dem Speichern - setOriginalValues({ - ids: [...ids], - bezeichnungen: [...bezeichnungen], - isolationsgrenzwerte: [...isolationsgrenzwerte], - verzoegerung: [...verzoegerung], - untereSchleifenGrenzwerte: [...untereSchleifenGrenzwerte], - obereSchleifenGrenzwerte: [...obereSchleifenGrenzwerte], - schleifenintervall: [...schleifenintervall], - }); + // Aktualisiere Redux-Store mit neuen Werten + dispatch( + updateValues({ + ids: [...ids], + bezeichnungen: [...bezeichnungen], + isolationsgrenzwerte: [...isolationsgrenzwerte], + verzoegerung: [...verzoegerung], + untereSchleifenGrenzwerte: [...untereSchleifenGrenzwerte], + obereSchleifenGrenzwerte: [...obereSchleifenGrenzwerte], + schleifenintervall: [...schleifenintervall], + }) + ); } else { alert("Fehler beim Speichern der Daten!"); } }) .catch((error) => { console.error("Fehler:", error); - alert("Fehler beim Senden der Daten!"); + //alert("Fehler beim Senden der Daten!"); }); } else { alert("Keine Änderungen vorgenommen."); diff --git a/pages/_app.js b/pages/_app.js index d085ae2..1beba6f 100644 --- a/pages/_app.js +++ b/pages/_app.js @@ -1,5 +1,5 @@ // _app.js -import { useEffect } from "react"; +import { useEffect, useState } from "react"; import { loadWindowVariables } from "../utils/loadWindowVariables"; import Header from "../components/Header"; import Navigation from "../components/Navigation"; @@ -10,19 +10,28 @@ import { setVariables } from "../store/variablesSlice"; import store from "../store/store"; function MyApp({ Component, pageProps }) { + const [sessionExpired, setSessionExpired] = useState(false); + useEffect(() => { const loadAndStoreVariables = async () => { - const variables = await loadWindowVariables(); - store.dispatch(setVariables(variables)); + try { + const variables = await loadWindowVariables(); + if (!variables) throw new Error("Sitzungsfehler"); // Fehler werfen, wenn keine Variablen geladen werden + store.dispatch(setVariables(variables)); + setSessionExpired(false); // Sitzung ist aktiv + } catch (error) { + console.error("Fehler beim Laden der Sitzung:", error); + setSessionExpired(true); // Sitzung ist abgelaufen oder fehlgeschlagen + } }; if (typeof window !== "undefined") { - loadAndStoreVariables(); // Initial load + loadAndStoreVariables(); // Initiales Laden - // Interval for updating the Redux store every 10 seconds + // Intervall zum Aktualisieren des Redux-Stores alle 10 Sekunden const intervalId = setInterval(loadAndStoreVariables, 10000); - // Cleanup interval when component unmounts + // Bereinigen des Intervalls, wenn die Komponente unmountet wird return () => clearInterval(intervalId); } }, []); @@ -34,6 +43,12 @@ function MyApp({ Component, pageProps }) {