"use client"; import { useRouter } from "next/navigation"; import { useMemo } from "react"; import AdminAppsList from "~/apps/components/AdminAppsList"; import { APP_NAME } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import type { inferSSRProps } from "@calcom/types/inferSSRProps"; import { WizardForm } from "@calcom/ui/components/form"; import type { WizardStep } from "@calcom/ui/components/form/wizard/WizardForm"; import { AdminUserContainer as AdminUser } from "@components/setup/AdminUser"; import type { getServerSideProps } from "@server/lib/setup/getServerSideProps"; const SETUP_VIEW_SETPS = { ADMIN_USER: 1, APPS: 2, } as const; export type PageProps = inferSSRProps; export function Setup(props: PageProps) { const { t } = useLocale(); const router = useRouter(); const defaultStep = useMemo(() => { if (props.userCount > 0) { return SETUP_VIEW_SETPS.APPS; } return SETUP_VIEW_SETPS.ADMIN_USER; }, [props.userCount]); const steps: WizardStep[] = [ { title: t("administrator_user"), description: t("lets_create_first_administrator_user"), customActions: true, content: (setIsPending, nav) => ( { setIsPending(true); }} onSuccess={() => { nav.onNext(); }} onError={() => { setIsPending(false); }} userCount={props.userCount} nav={nav} /> ), }, ]; steps.push({ title: t("enable_apps"), description: t("enable_apps_description", { appName: APP_NAME }), contentClassname: "pb-0! -mb-px", customActions: true, content: (setIsPending, nav) => { return ( { setIsPending(true); router.replace("/"); }} nav={nav} /> ); }, }); return (
t("current_step_of_total", { currentStep, maxSteps })} />
); } Setup.isThemeSupported = false; export default Setup;