This commit is contained in:
Jack Mechem 2026-05-21 21:13:06 -07:00
parent 3f178f8795
commit c6e6c5ca48
Signed by: jackmechem
SSH key fingerprint: SHA256:GjIjMAC33pzYOe+hWcX5uvgnPrVFAXSrquvt84AOJbU
20 changed files with 664 additions and 277 deletions

View file

@ -3,7 +3,7 @@
import { useEffect, useState, useRef, useCallback } from "react";
import { getStats, type Stats, type NetworkInterface } from "./lib/getStats";
import NavBar from "./components/NavBar";
import SideNav from "./components/SideNav";
import Hero from "./components/Hero";
import StatsGrid from "./components/StatsGrid";
import ServicesCard from "./components/ServicesCard";
@ -35,7 +35,6 @@ export default function Home() {
const lastFetchRef = useRef<number>(0);
const logIdRef = useRef(0);
// Mobile detection
useEffect(() => {
const check = () => setIsMobile(window.innerWidth < 768);
check();
@ -43,7 +42,6 @@ export default function Home() {
return () => window.removeEventListener("resize", check);
}, []);
// Fetch interceptor — captures all /api/* requests
useEffect(() => {
const original = window.fetch;
@ -168,23 +166,24 @@ export default function Home() {
const primarySpeed = primaryIface ? netSpeed[primaryIface] || null : null;
return (
<>
<div className="w-full h-full bg-primary text-foreground overflow-hidden flex flex-row">
<SideNav
online={!!stats}
devConsoleOpen={panelOpen}
onToggleDevConsole={() => setPanelOpen((o) => !o)}
/>
<div
className="flex-1 overflow-y-auto pt-[52px] lg:pt-0 lg:m-[10px_10px_10px_0px] lg:rounded-2xl lg:border lg:border-blue/20 min-w-0"
style={{
paddingRight: panelOpen && !isMobile ? panelWidth : 0,
transition: "padding-right 280ms cubic-bezier(0.4,0,0.2,1)",
}}
>
<div className="max-w-5xl mx-auto px-6 pb-20">
<NavBar
online={!!stats}
devConsoleOpen={panelOpen}
onToggleDevConsole={() => setPanelOpen((o) => !o)}
/>
<div className="max-w-5xl mx-auto px-6 pb-20 pt-8">
<Hero lastUpdated={stats?.timestamp ?? null} />
<div className="flex items-baseline justify-between mb-5">
<h2 className="text-lg font-medium tracking-tight text-gray-900">
<h2 className="text-lg font-medium tracking-tight text-foreground" style={{ lineHeight: "normal", marginTop: 0 }}>
System Stats
</h2>
</div>
@ -204,7 +203,7 @@ export default function Home() {
</div>
<div className="flex items-baseline justify-between mb-5">
<h2 className="text-lg font-medium tracking-tight text-gray-900">
<h2 className="text-lg font-medium tracking-tight text-foreground" style={{ lineHeight: "normal", marginTop: 0 }}>
Power Consumption
</h2>
</div>
@ -223,6 +222,6 @@ export default function Home() {
onWidthChange={setPanelWidth}
logs={logs}
/>
</>
</div>
);
}