// [nexus] Summary screen for onboarding wizard step 5 — read-only review before starting
import type { HardwareInfo, HardwareTier, NexusMode } from "@/api/hardware";
import { Button } from "@/components/ui/button";
interface OnboardingSummaryStepProps {
hardwareInfo: HardwareInfo | undefined;
selectedMode: NexusMode;
providerLabel: string;
rootDir: string;
loading: boolean;
error: string | null;
onStartChat: () => void;
onBack: () => void;
}
interface SummaryRowProps {
label: string;
value: string;
mono?: boolean;
}
function SummaryRow({ label, value, mono }: SummaryRowProps) {
return (
{label}
{value}
);
}
const HARDWARE_TIER_LABELS: Record = {
gpu: "GPU",
apple_silicon: "Apple Silicon",
cpu_only: "CPU Only",
};
const MODE_LABELS: Record = {
personal_ai: "Personal AI Assistant",
project_builder: "Project Builder",
both: "Both (recommended)",
};
export function OnboardingSummaryStep({
hardwareInfo,
selectedMode,
providerLabel,
rootDir,
loading,
error,
onStartChat,
onBack,
}: OnboardingSummaryStepProps) {
const hardwareLabel = hardwareInfo
? (HARDWARE_TIER_LABELS[hardwareInfo.hardwareTier] ?? "Unknown")
: "Unknown";
const modeLabel = MODE_LABELS[selectedMode];
return (
Ready to go
Review your setup before starting.
{/* Summary card */}
{rootDir && }
{/* Error message */}
{error && (
{error}
)}
{/* Actions */}
);
}