import { createFileRoute, redirect, useNavigate } from "@tanstack/react-router"; import { PairingPendingSurface, PairingRouteSurface } from "../components/auth/PairingRouteSurface";import { ensurePrimaryEnvironmentReady, resolveInitialServerAuthGateState,} from "../environments/primary"; export const Route = createFileRoute("/pair")({ beforeLoad: async () => { const [, authGateState] = await Promise.all([ ensurePrimaryEnvironmentReady(), resolveInitialServerAuthGateState(), ]); if (authGateState.status === "authenticated") { throw redirect({ to: "/", replace: true }); } return { authGateState, }; }, component: PairRouteView, pendingComponent: PairRoutePendingView,}); function PairRouteView() { const { authGateState } = Route.useRouteContext(); const navigate = useNavigate(); if (!authGateState) { return null; } return ( <PairingRouteSurface auth={authGateState.auth} onAuthenticated={() => { void navigate({ to: "/", replace: true }); }} {...(authGateState.errorMessage ? { initialErrorMessage: authGateState.errorMessage } : {})} /> );} function PairRoutePendingView() { return <PairingPendingSurface />;}
import { createFileRoute, redirect, useNavigate } from "@tanstack/react-router";
import { PairingPendingSurface, PairingRouteSurface } from "../components/auth/PairingRouteSurface";
import {
ensurePrimaryEnvironmentReady,
resolveInitialServerAuthGateState,
} from "../environments/primary";
export const Route = createFileRoute("/pair")({
beforeLoad: async () => {
const [, authGateState] = await Promise.all([
ensurePrimaryEnvironmentReady(),
resolveInitialServerAuthGateState(),
]);
if (authGateState.status === "authenticated") {
throw redirect({ to: "/", replace: true });
}
return {
authGateState,
};
},
component: PairRouteView,
pendingComponent: PairRoutePendingView,
});
function PairRouteView() {
const { authGateState } = Route.useRouteContext();
const navigate = useNavigate();
if (!authGateState) {
return null;
}
return (
<PairingRouteSurface
auth={authGateState.auth}
onAuthenticated={() => {
void navigate({ to: "/", replace: true });
}}
{...(authGateState.errorMessage ? { initialErrorMessage: authGateState.errorMessage } : {})}
/>
);
}
function PairRoutePendingView() {
return <PairingPendingSurface />;
}