import { useTelemetrySeries } from '../../hooks' import type { WidgetConfig } from '../../hooks' interface GaugeWidgetProps { config: WidgetConfig } export default function GaugeWidget({ config }: GaugeWidgetProps) { const { deviceIds, metricIds, timeframe, title } = config const deviceId = deviceIds[0] const metric = metricIds[0] const { data, isLoading, error } = useTelemetrySeries({ deviceId, metric, hours: timeframe.hours, startTime: timeframe.startTime, endTime: timeframe.endTime, limit: 1, }) const latest = data[0] const value = latest?.value || 0 // Simple gauge ranges (could be configured per metric) const ranges = { low: 33, medium: 66, high: 100, } const percentage = Math.min(100, Math.max(0, value)) let color = 'text-success' if (percentage > ranges.medium) color = 'text-error' else if (percentage > ranges.low) color = 'text-warning' if (isLoading) { return (
Error: {error.message}