diff --git a/src/frontend/src/components/forms/AuthenticationForm.tsx b/src/frontend/src/components/forms/AuthenticationForm.tsx
index d8eea8d392..982b386265 100644
--- a/src/frontend/src/components/forms/AuthenticationForm.tsx
+++ b/src/frontend/src/components/forms/AuthenticationForm.tsx
@@ -332,10 +332,10 @@ export function RegistrationForm() {
export function ModeSelector({
loginMode,
- setMode
+ changePage
}: Readonly<{
loginMode: boolean;
- setMode: any;
+ changePage: (state: string) => void;
}>) {
const [sso_registration, registration_enabled] = useServerApiState(
(state) => [state.sso_registration_enabled, state.registration_enabled]
@@ -354,7 +354,7 @@ export function ModeSelector({
type='button'
c='dimmed'
size='xs'
- onClick={() => setMode.close()}
+ onClick={() => changePage('register')}
>
Register
@@ -365,7 +365,7 @@ export function ModeSelector({
type='button'
c='dimmed'
size='xs'
- onClick={() => setMode.open()}
+ onClick={() => changePage('login')}
>
Go back to login
diff --git a/src/frontend/src/pages/Auth/Login.tsx b/src/frontend/src/pages/Auth/Login.tsx
index 139a4fdf65..91e3fcabe4 100644
--- a/src/frontend/src/pages/Auth/Login.tsx
+++ b/src/frontend/src/pages/Auth/Login.tsx
@@ -39,6 +39,14 @@ export default function Login() {
const location = useLocation();
const [searchParams] = useSearchParams();
+ useEffect(() => {
+ if (location.pathname === '/register') {
+ setMode.close();
+ } else {
+ setMode.open();
+ }
+ }, [location]);
+
// Data manipulation functions
function ChangeHost(newHost: string | null): void {
if (newHost === null) return;
@@ -95,7 +103,10 @@ export default function Login() {
)}
{loginMode ? : }
-
+ navigate(`/${newPage}`)}
+ />
>
diff --git a/src/frontend/src/router.tsx b/src/frontend/src/router.tsx
index 297660ba3d..ad4a1b7fea 100644
--- a/src/frontend/src/router.tsx
+++ b/src/frontend/src/router.tsx
@@ -171,6 +171,7 @@ export const routes = (
}>
} />,
+ } />,
} />,
} />,
} />