| @@ -24,10 +24,8 @@ import { | |||
| import { useTranslation } from 'react-i18next'; | |||
| import dayjs from 'dayjs'; | |||
| // Placeholder interface - to be defined when implementing details | |||
| interface GoodsReceiptStatusItem { | |||
| id: string; | |||
| // Add fields as needed when implementing | |||
| } | |||
| const GoodsReceiptStatus: React.FC = () => { | |||
| @@ -38,18 +36,13 @@ const GoodsReceiptStatus: React.FC = () => { | |||
| const [currentTime, setCurrentTime] = useState<dayjs.Dayjs | null>(null); | |||
| const [isClient, setIsClient] = useState<boolean>(false); | |||
| // Set client flag and time on mount | |||
| useEffect(() => { | |||
| setIsClient(true); | |||
| setCurrentTime(dayjs()); | |||
| }, []); | |||
| // Load data from API - placeholder for now | |||
| const loadData = useCallback(async () => { | |||
| try { | |||
| // TODO: Implement API call when ready | |||
| // const result = await fetchGoodsReceiptStatusClient(); | |||
| // setData(result); | |||
| setData([]); | |||
| } catch (error) { | |||
| console.error('Error fetching goods receipt status:', error); | |||
| @@ -58,42 +51,34 @@ const GoodsReceiptStatus: React.FC = () => { | |||
| } | |||
| }, []); | |||
| // Initial load and auto-refresh every 5 minutes | |||
| useEffect(() => { | |||
| loadData(); | |||
| const refreshInterval = setInterval(() => { | |||
| loadData(); | |||
| }, 5 * 60 * 1000); // 5 minutes | |||
| }, 5 * 60 * 1000); | |||
| return () => clearInterval(refreshInterval); | |||
| }, [loadData]); | |||
| // Update current time every 1 minute | |||
| useEffect(() => { | |||
| if (!isClient) return; | |||
| const timeInterval = setInterval(() => { | |||
| setCurrentTime(dayjs()); | |||
| }, 60 * 1000); // 1 minute | |||
| }, 60 * 1000); | |||
| return () => clearInterval(timeInterval); | |||
| }, [isClient]); | |||
| // Filter data by selected filter | |||
| const filteredData = useMemo(() => { | |||
| if (!selectedFilter) return data; | |||
| return data.filter(item => true); // TODO: Implement filter logic | |||
| return data.filter(item => true); | |||
| }, [data, selectedFilter]); | |||
| return ( | |||
| <Card sx={{ mb: 2 }}> | |||
| <CardContent> | |||
| {/* Title */} | |||
| <Typography variant="h5" sx={{ mb: 3, fontWeight: 600 }}> | |||
| {t("Goods Receipt Status")} | |||
| </Typography> | |||
| {/* Filter */} | |||
| <Stack direction="row" spacing={2} sx={{ mb: 3 }}> | |||
| <FormControl sx={{ minWidth: 150 }} size="small"> | |||