import { Button, Code, Paper, Text } from "@mantine/core";
import { notifications } from "@mantine/notifications";
import { Navigate } from "react-router";
import { useUserContext } from "../context/user-context";
import { Layout } from "../components/layouts/layout";
import { ReactNode } from "react";
import { isQueryValid } from "../utils/utils";
import { useAppContext } from "../context/app-context";
import { Trans, useTranslation } from "react-i18next";
export const ContinuePage = () => {
const queryString = window.location.search;
const params = new URLSearchParams(queryString);
const redirectUri = params.get("redirect_uri") ?? "";
const { isLoggedIn } = useUserContext();
const { disableContinue } = useAppContext();
const { t } = useTranslation();
if (!isLoggedIn) {
return ;
}
if (!isQueryValid(redirectUri)) {
return ;
}
const redirect = () => {
notifications.show({
title: t("continueRedirectingTitle"),
message: t("continueRedirectingSubtitle"),
color: "blue",
});
setTimeout(() => {
window.location.href = redirectUri;
}, 500);
};
let uri;
try {
uri = new URL(redirectUri);
} catch {
return (
{t("Invalid redirect")}
{t("The redirect URL is invalid")}
);
}
if (disableContinue) {
window.location.href = redirectUri;
return (
{t("continueRedirectingTitle")}
{t("continueRedirectingSubtitle")}
);
}
if (window.location.protocol === "https:" && uri.protocol === "http:") {
return (
{t("continueInsecureRedirectTitle")}
}}
/>
);
}
return (
{t("continueTitle")}
{t("continueSubtitle")}
);
};
export const ContinuePageLayout = ({ children }: { children: ReactNode }) => {
return (
{children}
);
};