"use client"; import { useEffect, useState } from "react"; import Card from "../Card"; type RechartsModule = typeof import("recharts"); let rechartsModule: RechartsModule | null = null; let rechartsPromise: Promise | null = null; export function loadRecharts() { if (rechartsModule) return Promise.resolve(rechartsModule); if (!rechartsPromise) { rechartsPromise = import("recharts") .then((module) => { rechartsModule = module; return module; }) .catch((error) => { rechartsPromise = null; throw error; }); } return rechartsPromise; } export function useRecharts() { const [module, setModule] = useState(rechartsModule); useEffect(() => { if (module) return; let cancelled = false; loadRecharts() .then((loadedModule) => { if (!cancelled) setModule(loadedModule); }) .catch(() => { if (!cancelled) setModule(null); }); return () => { cancelled = true; }; }, [module]); return module; } export function ChartLoadingCard({ className = "p-4 flex-1" }: { className?: string }) { return (