Add edit beer post, 500 page, and redirectIfLoggedIn getServerSideProps.

Implement edit beer post functionality.

Register, edit and create beer post forms are now using the same layout found in components/ui/forms/BeerPostFormPageLayout. All forms are now extracted into their own components and are now found in components.

Added redirectIfLoggedIn getServerSidesProp fn for login and register pages.
This commit is contained in:
Aaron William Po
2023-02-27 18:13:38 -05:00
parent 11b3304c54
commit 7126c74d5d
18 changed files with 588 additions and 283 deletions

View File

@@ -1,33 +0,0 @@
import { GetServerSidePropsContext, GetServerSidePropsResult, PreviewData } from 'next';
import { ParsedUrlQuery } from 'querystring';
import { getLoginSession } from './session';
export type ExtendedGetServerSideProps<
P extends { [key: string]: any } = { [key: string]: any },
Q extends ParsedUrlQuery = ParsedUrlQuery,
D extends PreviewData = PreviewData,
> = (
context: GetServerSidePropsContext<Q, D>,
session: Awaited<ReturnType<typeof getLoginSession>>,
) => Promise<GetServerSidePropsResult<P>>;
const withPageAuthRequired =
<P extends { [key: string]: any } = { [key: string]: any }>(
fn?: ExtendedGetServerSideProps<P>,
) =>
async (context: GetServerSidePropsContext) => {
try {
const { req } = context;
const session = await getLoginSession(req);
if (!fn) {
return { props: {} };
}
return await fn(context, session);
} catch (error) {
return { redirect: { destination: '/login', permanent: false } };
}
};
export default withPageAuthRequired;