web: added the base for the web project

This commit is contained in:
Carl-Gerhard Lindesvärd
2023-10-26 20:53:11 +02:00
parent 15e29edaa7
commit 8a87fff689
107 changed files with 3607 additions and 512 deletions

View File

@@ -0,0 +1,35 @@
import {
type GetServerSidePropsContext,
type GetServerSidePropsResult,
} from "next";
import { getServerAuthSession } from "./auth";
export function createServerSideProps(
cb?: (context: GetServerSidePropsContext) => Promise<any>,
) {
return async function getServerSideProps(
context: GetServerSidePropsContext,
): Promise<GetServerSidePropsResult<any>> {
const session = await getServerAuthSession(context);
if(!session) {
return {
redirect: {
destination: "/api/auth/signin",
permanent: false,
},
}
}
const res = await (typeof cb === "function"
? cb(context)
: Promise.resolve({}));
return {
...(res ?? {}),
props: {
session,
...(res?.props ?? {}),
},
};
};
}