diff --git a/apps/web/app/future/auth/setup/page.tsx b/apps/web/app/future/auth/setup/page.tsx new file mode 100644 index 0000000000..b33b9693ab --- /dev/null +++ b/apps/web/app/future/auth/setup/page.tsx @@ -0,0 +1,12 @@ +import Setup from "@pages/auth/setup"; +import { withAppDirSsr } from "app/WithAppDirSsr"; +import { WithLayout } from "app/layoutHOC"; +import type { InferGetServerSidePropsType } from "next"; + +import { getServerSideProps } from "@server/lib/setup/getServerSideProps"; + +export default WithLayout({ + getLayout: null, + Page: Setup, + getData: withAppDirSsr>(getServerSideProps), +})<"P">; diff --git a/apps/web/pages/auth/setup/index.tsx b/apps/web/pages/auth/setup/index.tsx index 89830d3613..cf5361f311 100644 --- a/apps/web/pages/auth/setup/index.tsx +++ b/apps/web/pages/auth/setup/index.tsx @@ -1,15 +1,12 @@ -import type { GetServerSidePropsContext } from "next"; +"use client"; + import { usePathname, useRouter } from "next/navigation"; import { useState } from "react"; import AdminAppsList from "@calcom/features/apps/AdminAppsList"; -import { getServerSession } from "@calcom/features/auth/lib/getServerSession"; -import { getDeploymentKey } from "@calcom/features/ee/deployment/lib/getDeploymentKey"; import { APP_NAME } from "@calcom/lib/constants"; import { useCompatSearchParams } from "@calcom/lib/hooks/useCompatSearchParams"; import { useLocale } from "@calcom/lib/hooks/useLocale"; -import prisma from "@calcom/prisma"; -import { UserPermissionRole } from "@calcom/prisma/enums"; import type { inferSSRProps } from "@calcom/types/inferSSRProps"; import { Meta, WizardForm } from "@calcom/ui"; @@ -18,7 +15,7 @@ import { AdminUserContainer as AdminUser } from "@components/setup/AdminUser"; import ChooseLicense from "@components/setup/ChooseLicense"; import EnterpriseLicense from "@components/setup/EnterpriseLicense"; -import { ssrInit } from "@server/lib/ssr"; +import { getServerSideProps } from "@server/lib/setup/getServerSideProps"; function useSetStep() { const router = useRouter(); @@ -152,50 +149,4 @@ Setup.isThemeSupported = false; Setup.PageWrapper = PageWrapper; export default Setup; -export const getServerSideProps = async (context: GetServerSidePropsContext) => { - const { req } = context; - - const ssr = await ssrInit(context); - const userCount = await prisma.user.count(); - - const session = await getServerSession({ req }); - - if (session?.user.role && session?.user.role !== UserPermissionRole.ADMIN) { - return { - redirect: { - destination: `/404`, - permanent: false, - }, - }; - } - - const deploymentKey = await prisma.deployment.findUnique({ - where: { id: 1 }, - select: { licenseKey: true }, - }); - - // Check existant CALCOM_LICENSE_KEY env var and acccount for it - if (!!process.env.CALCOM_LICENSE_KEY && !deploymentKey?.licenseKey) { - await prisma.deployment.upsert({ - where: { id: 1 }, - update: { - licenseKey: process.env.CALCOM_LICENSE_KEY, - agreedLicenseAt: new Date(), - }, - create: { - licenseKey: process.env.CALCOM_LICENSE_KEY, - agreedLicenseAt: new Date(), - }, - }); - } - - const isFreeLicense = (await getDeploymentKey(prisma)) === ""; - - return { - props: { - trpcState: ssr.dehydrate(), - isFreeLicense, - userCount, - }, - }; -}; +export { getServerSideProps }; diff --git a/apps/web/server/lib/setup/getServerSideProps.tsx b/apps/web/server/lib/setup/getServerSideProps.tsx new file mode 100644 index 0000000000..dbc0ccb6cc --- /dev/null +++ b/apps/web/server/lib/setup/getServerSideProps.tsx @@ -0,0 +1,56 @@ +import type { GetServerSidePropsContext } from "next"; + +import { getServerSession } from "@calcom/features/auth/lib/getServerSession"; +import { getDeploymentKey } from "@calcom/features/ee/deployment/lib/getDeploymentKey"; +import prisma from "@calcom/prisma"; +import { UserPermissionRole } from "@calcom/prisma/enums"; + +import { ssrInit } from "@server/lib/ssr"; + +export async function getServerSideProps(context: GetServerSidePropsContext) { + const { req } = context; + + const ssr = await ssrInit(context); + const userCount = await prisma.user.count(); + + const session = await getServerSession({ req }); + + if (session?.user.role && session?.user.role !== UserPermissionRole.ADMIN) { + return { + redirect: { + destination: `/404`, + permanent: false, + }, + }; + } + + const deploymentKey = await prisma.deployment.findUnique({ + where: { id: 1 }, + select: { licenseKey: true }, + }); + + // Check existant CALCOM_LICENSE_KEY env var and acccount for it + if (!!process.env.CALCOM_LICENSE_KEY && !deploymentKey?.licenseKey) { + await prisma.deployment.upsert({ + where: { id: 1 }, + update: { + licenseKey: process.env.CALCOM_LICENSE_KEY, + agreedLicenseAt: new Date(), + }, + create: { + licenseKey: process.env.CALCOM_LICENSE_KEY, + agreedLicenseAt: new Date(), + }, + }); + } + + const isFreeLicense = (await getDeploymentKey(prisma)) === ""; + + return { + props: { + trpcState: ssr.dehydrate(), + isFreeLicense, + userCount, + }, + }; +}