"use client"; import { useState } from "react"; import { type PowerData } from "../lib/getPower"; import PowerCard from "./PowerCard"; interface PowerGridProps { power: PowerData | null; onRefresh: () => void; showControls?: boolean; } export default function PowerGrid({ power, onRefresh, showControls = true }: PowerGridProps) { const [toggling, setToggling] = useState(null); const handleToggle = async (deviceName: string, on: boolean) => { setToggling(deviceName); try { const action = on ? "on" : "off"; const res = await fetch(`/api/power/${deviceName}/${action}`, { method: "POST" }); if (!res.ok) console.error(`Toggle ${deviceName} failed:`, res.status); else onRefresh(); } finally { setToggling(null); } }; const devices = power?.devices ?? []; return (
{devices.length > 0 ? ( devices.map((device, i) => ( handleToggle(device.name, on) : undefined} /> )) ) : ( <> )}
); }