import { createFileRoute, redirect, useNavigate } from "@tanstack/react-router";
import {
HostedPairingRouteSurface,
PairingPendingSurface,
PairingRouteSurface,
} from "../components/auth/PairingRouteSurface";
export const Route = createFileRoute("/pair")({
beforeLoad: async ({ context }) => {
const { authGateState } = context;
if (authGateState.status === "hosted-pairing") {
return {
authGateState,
};
}
if (authGateState.status === "authenticated" || authGateState.status === "hosted-static") {
throw redirect({ to: "/", replace: true });
}
return {
authGateState,
};
},
component: PairRouteView,
pendingComponent: PairRoutePendingView,
});
function PairRouteView() {
const { authGateState } = Route.useRouteContext();
const navigate = useNavigate();
if (!authGateState) {
return null;
}
if (authGateState.status === "hosted-pairing") {
return ;
}
return (
{
void navigate({ to: "/", replace: true });
}}
{...(authGateState.errorMessage ? { initialErrorMessage: authGateState.errorMessage } : {})}
/>
);
}
function PairRoutePendingView() {
return ;
}