import React, { useEffect, useState } from "react"; import { fetchJson } from "../api/http"; interface CustomerData { customer_id: string; customer_name: string; total_rows: number; last_successful_sync: string; drift_status: string; } const REFRESH_INTERVAL_MS = 30_000; export const DataQualityDashboard: React.FC = () => { const [data, setData] = useState([]); const [error, setError] = useState(null); const [lastUpdated, setLastUpdated] = useState(new Date()); useEffect(() => { let isMounted = true; const load = async () => { try { const res = await fetchJson("/api/data-quality"); if (isMounted) { setData(res); setError(null); setLastUpdated(new Date()); } } catch (e) { if (isMounted) { setError(e instanceof Error ? e.message : "Unknown error"); } } }; load(); const interval = setInterval(load, REFRESH_INTERVAL_MS); return () => { isMounted = false; clearInterval(interval); }; }, []); return (

Data Quality Dashboard

Last updated: {lastUpdated.toLocaleTimeString()} | Auto-refresh every 30s

{error &&
Error: {