26 lines
845 B
TypeScript
26 lines
845 B
TypeScript
import type { GetServerSidePropsContext } from "next";
|
|
|
|
import { getServerSession } from "@calcom/features/auth/lib/getServerSession";
|
|
|
|
import { ssrInit } from "@server/lib/ssr";
|
|
|
|
export const getServerSideProps = async (context: GetServerSidePropsContext) => {
|
|
const ssr = await ssrInit(context);
|
|
await ssr.viewer.me.prefetch();
|
|
const session = await getServerSession({ req: context.req, res: context.res });
|
|
const token = Array.isArray(context.query?.token) ? context.query.token[0] : context.query?.token;
|
|
|
|
const callbackUrl = token ? `/teams?token=${encodeURIComponent(token)}` : null;
|
|
|
|
if (!session) {
|
|
return {
|
|
redirect: {
|
|
destination: callbackUrl ? `/auth/login?callbackUrl=${callbackUrl}` : "/auth/login",
|
|
permanent: false,
|
|
},
|
|
};
|
|
}
|
|
|
|
return { props: { trpcState: ssr.dehydrate() } };
|
|
};
|