diff --git a/frontend/src/Session.tsx b/frontend/src/Session.tsx
index f210060..d83399a 100644
--- a/frontend/src/Session.tsx
+++ b/frontend/src/Session.tsx
@@ -10,6 +10,12 @@ import { Login } from "./Login";
import Header from "./Header";
import { Team } from "./types";
import Loading from "./Loading";
+import {
+ useLocation,
+ useNavigate,
+ useParams,
+ useSearchParams,
+} from "react-router";
export interface SessionProviderProps {
children: ReactNode;
@@ -46,6 +52,9 @@ export function SessionProvider(props: SessionProviderProps) {
const [players, setPlayers] = useState
(null);
const [error, setError] = useState(null);
const [loading, setLoading] = useState(false);
+ const location = useLocation();
+ let [searchParams] = useSearchParams();
+ const navigate = useNavigate();
function loadUser() {
setLoading(true);
@@ -101,6 +110,8 @@ export function SessionProvider(props: SessionProviderProps) {
if (loading || (!error && !user))
content = ;
else if (error) {
+ if (location.pathname === "/join" && !searchParams.get("login"))
+ navigate(`/register${location.search}`);
content = (