import { useMemo } from "react"; import { Card, CardContent } from "@/components/ui/card"; import { Loader2, TrendingUp } from "lucide-react"; import { TimeRangeSelector } from "./charts/TimeRangeSelector"; import { useServerHistoryData } from "./charts/hooks/useServerHistoryData"; import { CPUChart } from "./charts/CPUChart"; import { MemoryChart } from "./charts/MemoryChart"; import { DiskChart } from "./charts/DiskChart"; import { NetworkChart } from "./charts/NetworkChart"; interface ServerHistoryChartsProps { serverId: string; } export const ServerHistoryCharts = ({ serverId }: ServerHistoryChartsProps) => { const { timeRange, setTimeRange, metrics, chartData, isLoading, error, isFetching } = useServerHistoryData(serverId); // console.log('ServerHistoryCharts: Rendering with serverId:', serverId, 'timeRange:', timeRange); // Memoize latest data calculation to prevent unnecessary recalculations const latestData = useMemo(() => { return chartData.length > 0 ? chartData[chartData.length - 1] : null; }, [chartData]); // Show skeleton loading state for better UX if (isLoading) { return (
Error loading chart data
{error?.message}
Server ID: {serverId} • Time Range: {timeRange}
No historical data available for {timeRange}
Raw metrics count: {metrics.length}
Server ID: {serverId} • Time Range: {timeRange}
{metrics.length > 0 ? 'Data exists but may be outside selected time range' : 'No metrics data found'}