diff --git a/apps/web/src/components/forms/signin.tsx b/apps/web/src/components/forms/signin.tsx
index 5a0770dec..2f67d4a4d 100644
--- a/apps/web/src/components/forms/signin.tsx
+++ b/apps/web/src/components/forms/signin.tsx
@@ -83,6 +83,8 @@ export const SignInForm = ({ className, initialEmail, isGoogleSSOEnabled }: Sign
'totp' | 'backup'
>('totp');
+ const [isPasskeyLoading, setIsPasskeyLoading] = useState(false);
+
const isPasskeyEnabled = getFlag('app_passkey');
const { mutateAsync: createPasskeySigninOptions } =
@@ -134,6 +136,8 @@ export const SignInForm = ({ className, initialEmail, isGoogleSSOEnabled }: Sign
}
try {
+ setIsPasskeyLoading(true);
+
const options = await createPasskeySigninOptions();
const credential = await startAuthentication(options);
@@ -150,6 +154,8 @@ export const SignInForm = ({ className, initialEmail, isGoogleSSOEnabled }: Sign
window.location.href = result.url;
} catch (err) {
+ setIsPasskeyLoading(false);
+
if (err.name === 'NotAllowedError') {
return;
}
@@ -334,11 +340,12 @@ export const SignInForm = ({ className, initialEmail, isGoogleSSOEnabled }: Sign
type="button"
size="lg"
variant="outline"
- loading={isSubmitting}
+ disabled={isSubmitting}
+ loading={isPasskeyLoading}
className="bg-background text-muted-foreground border"
onClick={onSignInWithPasskey}
>
-
+ {!isPasskeyLoading && }
Passkey
)}