From b536d31e48a8ae82cb5b6282f0df6cba81af9951 Mon Sep 17 00:00:00 2001 From: ISA Date: Tue, 25 Mar 2025 09:34:19 +0100 Subject: [PATCH] =?UTF-8?q?git=20commit=20-m=20"refactor:=20last20Messages?= =?UTF-8?q?=20aus=20=5Fapp.tsx=20entfernt=20und=20=C3=BCber=20Thunk=20in?= =?UTF-8?q?=20dashboard.tsx=20geladen"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/webVersion.ts | 2 +- pages/_app.tsx | 10 ---------- pages/dashboard.tsx | 13 +++++++++++++ redux/thunks/fetchLast20MessagesThunk.ts | 12 ++++++++++++ services/fetchLast20Messages.ts | 9 +++++++++ 5 files changed, 35 insertions(+), 11 deletions(-) create mode 100644 redux/thunks/fetchLast20MessagesThunk.ts create mode 100644 services/fetchLast20Messages.ts diff --git a/config/webVersion.ts b/config/webVersion.ts index ad7560d..fcaa772 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.156"; +const webVersion = "1.6.157"; export default webVersion; diff --git a/pages/_app.tsx b/pages/_app.tsx index 5d87edf..024c0b0 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -12,11 +12,6 @@ import WindowVariablesInitializer from "../components/WindowVariablesInitializer import "../styles/globals.css"; import { AppProps } from "next/app"; import { setVariables } from "../redux/slices/variablesSlice"; -import { - setOpcUaZustand, - setOpcUaActiveClientCount, - setOpcUaNodesetName, -} from "../redux/slices/opcuaSettingsSlice"; function MyApp({ Component, pageProps }: AppProps) { return ( @@ -39,7 +34,6 @@ function AppContent({ Component, pageProps }: AppProps) { //console.log("✅ Window-Variablen geladen:", variables); const { - last20Messages, opcUaZustand, opcUaActiveClientCount, opcUaNodesetName, @@ -57,10 +51,6 @@ function AppContent({ Component, pageProps }: AppProps) { ...restVariables } = variables; - dispatch(setOpcUaZustand(opcUaZustand || "Offline")); - dispatch(setOpcUaActiveClientCount(opcUaActiveClientCount || 0)); - dispatch(setOpcUaNodesetName(opcUaNodesetName || "DefaultNodeset")); - dispatch(setVariables(restVariables)); setSessionExpired(false); diff --git a/pages/dashboard.tsx b/pages/dashboard.tsx index cb6fd54..0ace96b 100644 --- a/pages/dashboard.tsx +++ b/pages/dashboard.tsx @@ -9,8 +9,21 @@ import Last20MessagesTable from "../components/main/uebersicht/Last20MessagesTab import NetworkInfo from "../components/main/uebersicht/NetworkInfo"; import VersionInfo from "../components/main/uebersicht/VersionInfo"; import Baugruppentraeger from "../components/main/uebersicht/Baugruppentraeger"; +import { fetchLast20MessagesThunk } from "../redux/thunks/fetchLast20MessagesThunk"; +import { useAppDispatch } from "../redux/store"; const Dashboard: React.FC = () => { + //------------------------------------- + const dispatch = useAppDispatch(); + useEffect(() => { + dispatch(fetchLast20MessagesThunk()); + const interval = setInterval(() => { + dispatch(fetchLast20MessagesThunk()); + }, 10000); // oder 5000 + + return () => clearInterval(interval); + }, [dispatch]); + //------------------------------------- return (
{/* Header */} diff --git a/redux/thunks/fetchLast20MessagesThunk.ts b/redux/thunks/fetchLast20MessagesThunk.ts new file mode 100644 index 0000000..fecde45 --- /dev/null +++ b/redux/thunks/fetchLast20MessagesThunk.ts @@ -0,0 +1,12 @@ +import { createAsyncThunk } from "@reduxjs/toolkit"; +import { fetchLast20MessagesFromWindow } from "../../services/fetchLast20Messages"; +import { setLast20Messages } from "../slices/dashboardSlice"; + +export const fetchLast20MessagesThunk = createAsyncThunk( + "dashboard/fetchLast20Messages", + async (_, { dispatch }) => { + const messages = await fetchLast20MessagesFromWindow(); + dispatch(setLast20Messages(messages)); + return messages; + } +); diff --git a/services/fetchLast20Messages.ts b/services/fetchLast20Messages.ts new file mode 100644 index 0000000..5082ba8 --- /dev/null +++ b/services/fetchLast20Messages.ts @@ -0,0 +1,9 @@ +export async function fetchLast20MessagesFromWindow(): Promise { + return new Promise((resolve) => { + if (typeof window !== "undefined" && (window as any).win_last20Messages) { + resolve((window as any).win_last20Messages); + } else { + resolve(null); + } + }); +}