import { useEffect, useState } from "react"; import Button from "../components/Button"; import StatusIcon from "../components/StatusIcon"; import { checkSystem, type SystemCheckResult, type RequirementCheck } from "../hooks/useTauri"; interface Props { onNext: () => void; onError: (msg: string) => void; } export default function SystemCheck({ onNext, onError }: Props) { const [loading, setLoading] = useState(true); const [result, setResult] = useState(null); useEffect(() => { checkSystem() .then((r) => { setResult(r); setLoading(false); }) .catch((e) => { onError(String(e)); }); }, [onError]); if (loading) { return (

Checking your system...

); } if (!result) return null; const allMet = result.requirements.every((r: RequirementCheck) => r.met); return (

System Check

{result.system.os_version} · {result.system.arch}

{result.requirements.map((req: RequirementCheck) => (

{req.name}

{req.found}

{req.required}
))} {/* Docker status */}

Docker

{result.docker.installed ? result.docker.running ? result.docker.version : "Installed but not running" : "Not installed"}

Required
{!allMet && (

Some requirements aren't met. We'll try to fix them in the next step.

)}
); }