import { IconChartBar } from "@tabler/icons-react"; import { lazy, Suspense, useEffect, useState } from "react"; import type { DataChartWidget as DataChartWidgetData } from "./data-widget-types.js"; const LazyDataChartRenderer = lazy(() => import("./DataChartRenderer.js").then((module) => ({ default: module.DataChartRenderer, })), ); export function DataChartWidget({ chart }: { chart: DataChartWidgetData }) { const [mounted, setMounted] = useState(false); useEffect(() => { setMounted(true); }, []); const fallback = (
Chart
); return (
{chart.title ?? "Data chart"}
{chart.data.length.toLocaleString()} point {chart.data.length === 1 ? "" : "s"} {chart.sampled ? " sampled" : ""}
{!mounted ? ( fallback ) : ( )}
); }