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