"use client"; // /pages/meldungen.tsx import React, { useState, useEffect } from "react"; import DateRangePickerMeldungen from "@/components/main/reports/DateRangePickerMeldungen"; import { useSelector, useDispatch } from "react-redux"; import { getMessagesThunk } from "@/redux/thunks/getMessagesThunk"; import type { AppDispatch } from "@/redux/store"; type Meldung = { t: string; s: number; c: string; m: string; i: string; v: string; }; export default function Messages() { const dispatch = useDispatch(); type RootState = { messages: { data: Meldung[]; }; // add other slices if needed }; const { data: messages } = useSelector((state: RootState) => state.messages); const [sourceFilter, setSourceFilter] = useState("Alle"); // Datum initialisieren: von = heute - 30 Tage, bis = heute const today = new Date(); const prior30 = new Date(); prior30.setDate(today.getDate() - 30); const formatDate = (d: Date) => d.toISOString().split("T")[0]; const [fromDate, setFromDate] = useState(formatDate(prior30)); const [toDate, setToDate] = useState(formatDate(today)); useEffect(() => { dispatch(getMessagesThunk({ fromDate, toDate })); }, [dispatch, fromDate, toDate]); const filteredMessages = sourceFilter === "Alle" ? messages : messages.filter((m: Meldung) => m.i === sourceFilter); const allSources = Array.from( new Set(messages.map((m: Meldung) => m.i)) ).sort(); return (

Berichte

{/* statt Status */} {filteredMessages.map((msg: Meldung, index: number) => ( {/* NEU */} ))}
Prio Zeitstempel Quelle Meldung Wert
{msg.t} {msg.i} {msg.m} {msg.v}
{messages.length === 0 && (
Keine Meldungen im gewählten Zeitraum vorhanden.
)}
); }