Files
documenso/apps/remix/server/utils/get-required-session-context.ts
David Nguyen 381a9d3fb8 fix: wip
2025-02-04 16:24:26 +11:00

32 lines
902 B
TypeScript

import type { AppLoadContext } from 'react-router';
import { redirect } from 'react-router';
/**
* Returns the session context or throws a redirect to signin if it is not present.
*/
export const getRequiredLoaderSession = (context: AppLoadContext) => {
if (!context.session) {
throw redirect('/signin'); // Todo: Maybe add a redirect cookie to come back?
}
return context.session;
};
/**
* Returns the team session context or throws a redirect to signin if it is not present.
*/
export const getRequiredLoaderTeamSession = (context: AppLoadContext) => {
if (!context.session) {
throw redirect('/signin'); // Todo: Maybe add a redirect cookie to come back?
}
if (!context.session.currentTeam) {
throw new Response(null, { status: 404 }); // Todo: Test that 404 page shows up.
}
return {
...context.session,
currentTeam: context.session.currentTeam,
};
};