Ver código fonte

Dashboard: Goods Receipt Status UI

MergeProblem1
B.E.N.S.O.N 2 semanas atrás
pai
commit
d92242ea2c
1 arquivos alterados com 3 adições e 18 exclusões
  1. +3
    -18
      src/components/DashboardPage/goodsReceiptStatus/GoodsReceiptStatus.tsx

+ 3
- 18
src/components/DashboardPage/goodsReceiptStatus/GoodsReceiptStatus.tsx Ver arquivo

@@ -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">


Carregando…
Cancelar
Salvar