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;
|