// ============================================================ // Dashboard estadístico conectado al servidor // ============================================================ const Dashboard = ({ onSessionExpired }) => { const [state, setState] = React.useState({ loading: true, error: '', data: null }); const loadDashboard = React.useCallback(async () => { setState(previous => ({ ...previous, loading: true, error: '' })); try { const data = await window.dashboardService.getDashboard(); setState({ loading: false, error: '', data }); } catch (error) { if (error?.status === 401 && typeof onSessionExpired === 'function') { onSessionExpired(); return; } setState({ loading: false, error: error?.message || 'No fue posible cargar el dashboard.', data: null }); } }, [onSessionExpired]); React.useEffect(() => { loadDashboard(); }, [loadDashboard]); if (state.loading) { return (
| Usuario | Digitalizados | Editados | Imágenes |
|---|---|---|---|
| Aún no hay productividad real registrada. | |||
|
{initials}
{user.name}
|
{Number(user.digitalized) ? fmtNum(user.digitalized) : '—'} | {Number(user.edited) ? fmtNum(user.edited) : '—'} | {fmtNum(Number(user.images) || 0)} |