"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 server = power?.devices.find((d) => d.name === "server") ?? null; const desktop = power?.devices.find((d) => d.name === "desktop") ?? 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); } }; return (
handleToggle("server", on) : undefined} /> handleToggle("desktop", on) : undefined} />
); }