"use client"; import { useRouter } from "next/navigation"; import { isCompanyEmail } from "@calcom/features/ee/organizations/lib/utils"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import classNames from "@calcom/ui/classNames"; import { Badge } from "@calcom/ui/components/badge"; import { Button } from "@calcom/ui/components/button"; import { type IconName } from "@calcom/ui/components/icon"; import { Logo } from "@calcom/ui/components/logo"; import { RadioAreaGroup } from "@calcom/ui/components/radio"; import { OnboardingContinuationPrompt } from "../components/onboarding-continuation-prompt"; import { PlanIcon } from "../components/plan-icon"; import { useOnboardingStore, type PlanType } from "../store/onboarding-store"; type OnboardingViewProps = { userName: string; userEmail: string; }; export const OnboardingView = ({ userName, userEmail }: OnboardingViewProps) => { const router = useRouter(); const { t } = useLocale(); const { selectedPlan, setSelectedPlan } = useOnboardingStore(); const handleContinue = () => { if (selectedPlan === "organization") { router.push("/onboarding/organization/details"); } else if (selectedPlan === "team") { router.push("/onboarding/teams/details"); } else if (selectedPlan === "personal") { router.push("/onboarding/personal/settings"); } }; const planIconByType: Record = { personal: "user", team: "users", organization: "users", }; const allPlans = [ { id: "personal" as PlanType, title: t("onboarding_plan_personal_title"), badge: t("onboarding_plan_personal_badge"), description: t("onboarding_plan_personal_description"), icon: planIconByType.personal, variant: "single" as const, }, { id: "team" as PlanType, title: t("onboarding_plan_team_title"), badge: t("onboarding_plan_team_badge"), description: t("onboarding_plan_team_description"), icon: planIconByType.team, variant: "single" as const, }, { id: "organization" as PlanType, title: t("onboarding_plan_organization_title"), badge: t("onboarding_plan_organization_badge"), description: t("onboarding_plan_organization_description"), icon: planIconByType.organization, variant: "double" as const, }, ]; // Only show organization plan for company emails const plans = allPlans.filter((plan) => { if (plan.id === "organization") { return isCompanyEmail(userEmail); } return true; }); return (
{/* Header */}
{/* Progress dots - centered */}

{userEmail}

{/* Main content */}
{/* Card */}
{/* Card Header */}

{t("onboarding_welcome_message", { userName })}

{t("onboarding_welcome_question")}

{/* Plan options */} setSelectedPlan(value as PlanType)} className="flex w-full flex-col gap-1 rounded-[10px]"> {plans.map((plan) => { const isSelected = selectedPlan === plan.id; return ( button]:left-auto [&>button]:right-6 [&>button]:mt-0 [&>button]:transform" )} classNames={{ container: "flex w-full items-center gap-4 p-4 pl-5 pr-12 md:p-5 md:pr-14", }}>

{plan.title}

{plan.badge}
{plan.badge}

{plan.description}

); })}
{/* Footer */}
); };