import { OnboardHeader } from "@/app/onboard/components/onboardHeader"; import { getOrgFromDomain } from "@/data/org"; import { OnboardingSteps } from "@/lib/constants"; import { notFound, redirect } from "next/navigation"; import { ConnectCodeHost } from "./components/connectCodeHost"; import { InviteTeam } from "./components/inviteTeam"; import { CompleteOnboarding } from "./components/completeOnboarding"; import { Checkout } from "./components/checkout"; import { LogoutEscapeHatch } from "@/app/components/logoutEscapeHatch"; interface OnboardProps { params: { domain: string }, searchParams: { step?: string stripe_session_id?: string } } export default async function Onboard({ params, searchParams }: OnboardProps) { const org = await getOrgFromDomain(params.domain); if (!org) { notFound(); } if (org.isOnboarded) { redirect(`/${params.domain}`); } const step = searchParams.step ?? OnboardingSteps.ConnectCodeHost; if ( !Object.values(OnboardingSteps) .filter(s => s !== OnboardingSteps.CreateOrg) .map(s => s.toString()) .includes(step) ) { redirect(`/${params.domain}/onboard?step=${OnboardingSteps.ConnectCodeHost}`); } const lastRequiredStep = OnboardingSteps.Checkout; return (
{step !== OnboardingSteps.Complete && ( )} {step === OnboardingSteps.ConnectCodeHost && ( <> )} {step === OnboardingSteps.InviteTeam && ( <> )} {step === OnboardingSteps.Checkout && ( <> )} {step === OnboardingSteps.Complete && ( )}
) }