Foxnouns.NET/Foxnouns.Frontend/app/routes/settings.auth_.confirm-email.$code/route.tsx

38 lines
1,003 B
TypeScript

import { LoaderFunctionArgs, json } from "@remix-run/node";
import { baseRequest } from "~/lib/request.server";
import { useTranslation } from "react-i18next";
import { useEffect } from "react";
import { useNavigate } from "@remix-run/react";
export const loader = async ({ params }: LoaderFunctionArgs) => {
const state = params.code!;
const resp = await baseRequest("POST", "/auth/email/callback", {
body: { state },
isInternal: true,
});
if (resp.status !== 204) {
// TODO: handle non-204 status (this indicates that the email was not linked to an account)
}
return json({ ok: true });
};
export default function ConfirmEmailPage() {
const { t } = useTranslation();
const navigate = useNavigate();
useEffect(() => {
setTimeout(() => {
navigate("/settings/auth");
}, 2000);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
return (
<>
<h3>{t("settings.auth.email-link-success")}</h3>
<p>{t("settings.auth.redirect-to-auth-hint")}</p>
</>
);
}