refactor: last20Messages in dashboardSlice ausgelagert und Redux-Handling optimiert
- last20Messages aus variablesSlice entfernt und in dashboardSlice verschoben - Redux wird nun mit window.win_last20Messages aktualisiert - setInterval hinzugefügt, um späte Ladezeiten von window-Daten abzufangen - API-Aufruf entfernt, da keine /api/last20Messages existiert - Redux DevTools überprüft, Daten werden jetzt korrekt geladen und angezeigt
This commit is contained in:
@@ -1,13 +1,34 @@
|
||||
"use client";
|
||||
import React from "react";
|
||||
import { useSelector } from "react-redux";
|
||||
"use client"; // /components/main/uebersicht/Last20MessagesTable.tsx
|
||||
import React, { useEffect } from "react";
|
||||
import { useSelector, useDispatch } from "react-redux";
|
||||
import { RootState } from "../../../redux/store";
|
||||
import { setLast20Messages } from "../../../redux/slices/dashboardSlice";
|
||||
|
||||
const Last20MessagesTable: React.FC = () => {
|
||||
const dispatch = useDispatch();
|
||||
|
||||
// Holt last20Messages aus Redux
|
||||
const rawLast20Messages = useSelector(
|
||||
(state: RootState) => state.variables.last20Messages
|
||||
(state: RootState) => state.dashboard.last20Messages
|
||||
);
|
||||
|
||||
// Holt Daten aus `window.win_last20Messages` und speichert sie in Redux
|
||||
useEffect(() => {
|
||||
const loadWindowMessages = () => {
|
||||
if (typeof window !== "undefined" && (window as any).win_last20Messages) {
|
||||
dispatch(setLast20Messages((window as any).win_last20Messages));
|
||||
}
|
||||
};
|
||||
|
||||
// Initialen Wert setzen
|
||||
loadWindowMessages();
|
||||
|
||||
// Falls die Daten erst später geladen werden, überprüfe jede Sekunde
|
||||
const interval = setInterval(loadWindowMessages, 1000);
|
||||
|
||||
return () => clearInterval(interval);
|
||||
}, [dispatch]);
|
||||
|
||||
// Hilfsfunktion zum Parsen der Nachrichten
|
||||
const parseMessages = (messages: string | null) => {
|
||||
if (typeof messages === "string") {
|
||||
|
||||
Reference in New Issue
Block a user