import { Alert, AlertDescription } from "@/components/ui/alert"; import { Skeleton } from "@/components/ui/skeleton"; import { LineSeriesChart } from "../components/LineSeriesChart"; import type { ChartSeries } from "../components/LineSeriesChart"; import type { MetricScale, MetricUnit } from "../lib/metricFormat"; import { SectionCard } from "../components/SectionCard"; import { useWidgetData } from "../hooks/useWidgets"; import type { WidgetInstance } from "../types"; interface Props { widget: WidgetInstance; refreshIntervalMs: number; description?: string; } export function QbittorrentSpeedWidget({ widget, refreshIntervalMs, description, }: Props) { const { data, isLoading } = useWidgetData(widget.id, refreshIntervalMs); const series = data?.data?.series as ChartSeries[] | undefined; // Source returns raw bytes/sec; default to bytes/sec + auto scale (MB/s, …). const unit = (widget.config.unit as MetricUnit) || "bytes_per_sec"; const scale = (widget.config.scale as MetricScale) || "auto"; return ( {isLoading && !data ? ( ) : data?.error ? ( {data.error} ) : series && series.length > 0 ? ( ) : ( No speed data yet )} ); }