diff --git a/ui/sign-in/src/SignInPage.tsx b/ui/sign-in/src/SignInPage.tsx index 8e08e7f..2bd2312 100644 --- a/ui/sign-in/src/SignInPage.tsx +++ b/ui/sign-in/src/SignInPage.tsx @@ -61,6 +61,7 @@ function getInitialMode(): Mode { export function SignInPage() { const [mode, setMode] = useState(getInitialMode); + const [registrationEnabled, setRegistrationEnabled] = useState(true); const subtitle = useMemo( () => pickRandom(mode === 'signIn' ? SIGN_IN_SUBTITLES : REGISTER_SUBTITLES), [mode === 'signIn' ? 'signIn' : 'register'], @@ -75,6 +76,18 @@ export function SignInPage() { const [error, setError] = useState(null); const [verificationId, setVerificationId] = useState(''); + // Fetch sign-in experience to check if registration is enabled + useEffect(() => { + fetch('/api/.well-known/sign-in-exp') + .then((r) => r.json()) + .then((data) => { + const enabled = data.signInMode === 'SignInAndRegister'; + setRegistrationEnabled(enabled); + if (!enabled && mode !== 'signIn') setMode('signIn'); + }) + .catch(() => {}); + }, []); + // Reset error when switching modes useEffect(() => { setError(null); }, [mode]); @@ -211,12 +224,14 @@ export function SignInPage() { Sign in -

- Don't have an account?{' '} - -

+ {registrationEnabled && ( +

+ Don't have an account?{' '} + +

+ )} )}