"use client"; import { useSetupStore } from "@/store/setup-store"; import { useAppStore } from "@/store/app-store"; import { StepIndicator } from "./setup-view/components"; import { WelcomeStep, CompleteStep, ClaudeSetupStep, GitHubSetupStep, } from "./setup-view/steps"; // Main Setup View export function SetupView() { const { currentStep, setCurrentStep, completeSetup, setSkipClaudeSetup, } = useSetupStore(); const { setCurrentView } = useAppStore(); const steps = ["welcome", "claude", "github", "complete"] as const; type StepName = (typeof steps)[number]; const getStepName = (): StepName => { if (currentStep === "claude_detect" || currentStep === "claude_auth") return "claude"; if (currentStep === "welcome") return "welcome"; if (currentStep === "github") return "github"; return "complete"; }; const currentIndex = steps.indexOf(getStepName()); const handleNext = (from: string) => { console.log( "[Setup Flow] handleNext called from:", from, "currentStep:", currentStep ); switch (from) { case "welcome": console.log("[Setup Flow] Moving to claude_detect step"); setCurrentStep("claude_detect"); break; case "claude": console.log("[Setup Flow] Moving to github step"); setCurrentStep("github"); break; case "github": console.log("[Setup Flow] Moving to complete step"); setCurrentStep("complete"); break; } }; const handleBack = (from: string) => { console.log("[Setup Flow] handleBack called from:", from); switch (from) { case "claude": setCurrentStep("welcome"); break; case "github": setCurrentStep("claude_detect"); break; } }; const handleSkipClaude = () => { console.log("[Setup Flow] Skipping Claude setup"); setSkipClaudeSetup(true); setCurrentStep("github"); }; const handleSkipGithub = () => { console.log("[Setup Flow] Skipping GitHub setup"); setCurrentStep("complete"); }; const handleFinish = () => { console.log("[Setup Flow] handleFinish called - completing setup"); completeSetup(); console.log("[Setup Flow] Setup completed, redirecting to welcome view"); setCurrentView("welcome"); }; return (
{/* Header */}
{/* eslint-disable-next-line @next/next/no-img-element */} Automaker Automaker Setup
{/* Content */}
{currentStep === "welcome" && ( handleNext("welcome")} /> )} {(currentStep === "claude_detect" || currentStep === "claude_auth") && ( handleNext("claude")} onBack={() => handleBack("claude")} onSkip={handleSkipClaude} /> )} {currentStep === "github" && ( handleNext("github")} onBack={() => handleBack("github")} onSkip={handleSkipGithub} /> )} {currentStep === "complete" && ( )}
); }