"use client"; import React, { useState, useEffect, useCallback, useMemo, useRef } from 'react'; import { Box, Typography, FormControl, InputLabel, Select, MenuItem, Card, CardContent, Stack, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Paper, CircularProgress, Chip } from '@mui/material'; import { useTranslation } from 'react-i18next'; import dayjs from 'dayjs'; interface GoodsReceiptStatusItem { id: string; } const GoodsReceiptStatus: React.FC = () => { const { t } = useTranslation("dashboard"); const [selectedFilter, setSelectedFilter] = useState(""); const [data, setData] = useState([]); const [loading, setLoading] = useState(false); const [currentTime, setCurrentTime] = useState(null); const [isClient, setIsClient] = useState(false); useEffect(() => { setIsClient(true); setCurrentTime(dayjs()); }, []); const loadData = useCallback(async () => { try { setData([]); } catch (error) { console.error('Error fetching goods receipt status:', error); } finally { setLoading(false); } }, []); useEffect(() => { loadData(); const refreshInterval = setInterval(() => { loadData(); }, 5 * 60 * 1000); return () => clearInterval(refreshInterval); }, [loadData]); useEffect(() => { if (!isClient) return; const timeInterval = setInterval(() => { setCurrentTime(dayjs()); }, 60 * 1000); return () => clearInterval(timeInterval); }, [isClient]); const filteredData = useMemo(() => { if (!selectedFilter) return data; return data.filter(item => true); }, [data, selectedFilter]); return ( {/* Filter */} {t("Filter")} {t("Auto-refresh every 5 minutes")} | {t("Last updated")}: {isClient && currentTime ? currentTime.format('HH:mm:ss') : '--:--:--'} {/* Table */} {loading ? ( ) : ( {t("Column 1")} {t("Column 2")} {t("Column 3")} {/* TODO: Add table columns when implementing */} {filteredData.length === 0 ? ( {t("No data available")} ) : ( filteredData.map((row, index) => ( {/* TODO: Add table cell content when implementing */} - - - )) )}
)}
); }; export default GoodsReceiptStatus;