Plug on/off

This commit is contained in:
Jack Mechem 2026-05-21 19:17:40 -07:00
parent 130bed1d1f
commit 876da0c384
Signed by: jackmechem
SSH key fingerprint: SHA256:GjIjMAC33pzYOe+hWcX5uvgnPrVFAXSrquvt84AOJbU
4 changed files with 100 additions and 26 deletions

View file

@ -1,6 +1,6 @@
"use client";
import { useEffect, useState, useRef } from "react";
import { useEffect, useState, useRef, useCallback } from "react";
import { getStats, type Stats, type NetworkInterface } from "./lib/getStats";
import NavBar from "./components/NavBar";
@ -141,20 +141,20 @@ export default function Home() {
return () => clearInterval(id);
}, []);
useEffect(() => {
const fetchPower = async () => {
try {
setPower(await getPower());
} catch (e) {
if (e instanceof Error && e.message === "UNAUTHORIZED") return;
console.error("Power fetch failed:", e);
}
};
const fetchPower = useCallback(async () => {
try {
setPower(await getPower());
} catch (e) {
if (e instanceof Error && e.message === "UNAUTHORIZED") return;
console.error("Power fetch failed:", e);
}
}, []);
useEffect(() => {
fetchPower();
const id = setInterval(fetchPower, 10000);
return () => clearInterval(id);
}, []);
}, [fetchPower]);
const primaryIface = stats
? Object.keys(stats.network).find(
@ -209,7 +209,7 @@ export default function Home() {
</h2>
</div>
<PowerGrid power={power} />
<PowerGrid power={power} onRefresh={fetchPower} />
<LinksGrid />
</div>