26 lines
677 B
TypeScript
26 lines
677 B
TypeScript
![]() |
import { type LoaderFunction, json } from "@remix-run/node";
|
||
|
|
||
|
import { getErrorMessage, requireLoggedOut } from "~/utils/auth.server";
|
||
|
import { commitSession, getSession } from "~/utils/session.server";
|
||
|
|
||
|
export type SignInLoaderData = { errors: { general: string } } | null;
|
||
|
|
||
|
const loader: LoaderFunction = async ({ request }) => {
|
||
|
const session = await getSession(request);
|
||
|
const errorMessage = getErrorMessage(session);
|
||
|
if (errorMessage) {
|
||
|
return json<SignInLoaderData>(
|
||
|
{ errors: { general: errorMessage } },
|
||
|
{
|
||
|
headers: { "Set-Cookie": await commitSession(session) },
|
||
|
},
|
||
|
);
|
||
|
}
|
||
|
|
||
|
await requireLoggedOut(request);
|
||
|
|
||
|
return null;
|
||
|
};
|
||
|
|
||
|
export default loader;
|