"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/last20MessagesSlice"; type Props = { className?: string; }; const Last20MessagesTable: React.FC = ({ className }) => { const dispatch = useDispatch(); const rawLast20Messages = useSelector( (state: RootState) => state.last20MessagesSlice.last20Messages ); useEffect(() => { const loadWindowMessages = () => { if (typeof window !== "undefined" && (window as any).win_last20Messages) { dispatch(setLast20Messages((window as any).win_last20Messages)); } }; loadWindowMessages(); const interval = setInterval(loadWindowMessages, 1000); return () => clearInterval(interval); }, [dispatch]); const parseMessages = (messages: string | null) => { if (!messages) return []; return messages .split("") .slice(1) .map((row) => row .replace(/<\/tr>/, "") .split("") .map((col) => col.replace(/<[^>]+>/g, "")) ); }; const allMessages = parseMessages(rawLast20Messages); return (
{/*

Letzte 20 Meldungen

*/}
{allMessages.length === 0 ? ( ) : ( allMessages.map((msg, index) => ( )) )}
ID Modul Zeitstempel Meldung Status
Keine Meldungen verfügbar.
{msg[0]} {msg[1]} {msg[2]} {msg[3]} {msg[4]}
); }; export default Last20MessagesTable;