import { useEffect, useState } from 'react'; import { Table, Popover, Image, Button, Space, message, ConfigProvider, Tooltip } from 'antd'; import { ReloadOutlined } from '@ant-design/icons'; import dayjs from 'dayjs'; import { posteingangApi } from '../api/posteingang'; import type { PosteingangDocument } from '../api/posteingang'; import DocumentEditModal from '../components/DocumentEditModal'; import { getEnv } from '../utils/env'; export default function PosteingangPage() { const [data, setData] = useState([]); const [loading, setLoading] = useState(false); const [editModalOpen, setEditModalOpen] = useState(false); const [selectedDoc, setSelectedDoc] = useState(null); const fetchData = async () => { setLoading(true); try { const docs = await posteingangApi.getList(); setData(docs || []); } catch (e) { message.error("Posteingang konnte nicht geladen werden."); } finally { setLoading(false); } }; useEffect(() => { fetchData(); // Refresh interval every 30 seconds const interval = setInterval(() => { fetchData(); }, 30000); return () => clearInterval(interval); }, []); const handleEdit = (doc: PosteingangDocument) => { setSelectedDoc(doc); setEditModalOpen(true); }; const handleCloseModal = (openNext?: boolean) => { setEditModalOpen(false); if (openNext && data.length > 0) { const currentIndex = data.findIndex(d => d.id === selectedDoc?.id); const nextIndex = currentIndex !== -1 && currentIndex + 1 < data.length ? currentIndex + 1 : 0; const nextDoc = data[nextIndex]; setTimeout(() => { setSelectedDoc(nextDoc); setEditModalOpen(true); }, 300); } else { setSelectedDoc(null); } }; const popoverContent = (id: number) => ( ); const columns = [ { title: 'Vorschau', key: 'preview', width: 150, render: (_: any, record: PosteingangDocument) => ( ), }, { title: 'Titel', dataIndex: 'title', key: 'title', width: '35%', }, { title: 'Eingangsdatum', key: 'eingangsdatum', render: (_: any, record: PosteingangDocument) => { const cf = record.customFields?.find((f) => f.field === 9); return cf?.value ? dayjs(cf.value).format('DD.MM.YYYY') : '-'; } }, { title: 'Importiert am', dataIndex: 'added', key: 'added', render: (text: string) => dayjs(text).format('DD.MM.YYYY HH:mm'), }, { title: 'Aktion', key: 'action', width: 150, render: (_: any, record: PosteingangDocument) => ( ), }, ]; return (

Posteingang

1} /> ); }