"use client"; import { type TapoDevice } from "../lib/getPower"; import HelpTooltip from "./HelpTooltip"; interface PowerCardProps { device: TapoDevice | null; label: string; delay?: number; toggling?: boolean; onToggle?: (on: boolean) => void; } function powerColor(watts: number): string { if (watts > 400) return "#ef4444"; if (watts > 200) return "#f59e0b"; return "#428ce2"; } export default function PowerCard({ device, label, delay = 0, toggling = false, onToggle }: PowerCardProps) { const pct = device ? Math.min(100, (device.current_power_w / 500) * 100) : 0; const runtimeHours = device ? Math.floor(device.today_runtime_min / 60) : 0; const runtimeMins = device ? device.today_runtime_min % 60 : 0; return (
{label} {device ? (
{device.on ? "On" : "Off"} {onToggle && ( )}
) : null}
{device ? ( <>
{device.current_power_w.toFixed(1)} W
{device.model} · {device.ip}
{(device.today_energy_wh / 1000).toFixed(3)} kWh Today
{(device.month_energy_wh / 1000).toFixed(2)} kWh Month
{runtimeHours}h {runtimeMins}m Runtime
) : (
)}
); }