diff --git a/src/features/onboarding/onboarding-checklist.tsx b/src/features/onboarding/onboarding-checklist.tsx new file mode 100644 index 00000000..14b90d1e --- /dev/null +++ b/src/features/onboarding/onboarding-checklist.tsx @@ -0,0 +1,80 @@ +"use client"; + +import { useOnboarding } from "@onboardjs/react"; +import { CheckCircle2, Circle } from "lucide-react"; +import { cn } from "@/lib/utils"; + +const CHECKLIST_STEPS = [ + { id: "login", label: "Sign in" }, + { id: "account-info", label: "Your account" }, + { id: "security", label: "Security" }, + { id: "preferences", label: "Preferences" }, + { id: "org-create", label: "Organisation" }, + { id: "invite-members", label: "Team members" }, + { id: "notifier", label: "Notifications" }, + { id: "storage", label: "Storage" }, + { id: "defaults", label: "Defaults" }, + { id: "agent-create", label: "Agent setup" }, + { id: "agent-key", label: "Agent key" }, + { id: "agent-waiting", label: "Agent connection" }, + { id: "project-create", label: "Project" }, + { id: "db-settings", label: "Database settings" }, + { id: "finish", label: "Done" }, +] as const; + +export const OnboardingChecklist = () => { + const { state } = useOnboarding(); + if (!state) return null; + + const currentId = state.currentStep?.id ?? ""; + const currentIndex = CHECKLIST_STEPS.findIndex((s) => s.id === currentId); + + return ( +
Progress
++ {step.label} +
+