fix: add passkey loading

This commit is contained in:
David Nguyen
2024-03-15 16:28:08 +08:00
parent 75319f20cb
commit 034318e571

View File

@ -83,6 +83,8 @@ export const SignInForm = ({ className, initialEmail, isGoogleSSOEnabled }: Sign
'totp' | 'backup' 'totp' | 'backup'
>('totp'); >('totp');
const [isPasskeyLoading, setIsPasskeyLoading] = useState(false);
const isPasskeyEnabled = getFlag('app_passkey'); const isPasskeyEnabled = getFlag('app_passkey');
const { mutateAsync: createPasskeySigninOptions } = const { mutateAsync: createPasskeySigninOptions } =
@ -134,6 +136,8 @@ export const SignInForm = ({ className, initialEmail, isGoogleSSOEnabled }: Sign
} }
try { try {
setIsPasskeyLoading(true);
const options = await createPasskeySigninOptions(); const options = await createPasskeySigninOptions();
const credential = await startAuthentication(options); const credential = await startAuthentication(options);
@ -150,6 +154,8 @@ export const SignInForm = ({ className, initialEmail, isGoogleSSOEnabled }: Sign
window.location.href = result.url; window.location.href = result.url;
} catch (err) { } catch (err) {
setIsPasskeyLoading(false);
if (err.name === 'NotAllowedError') { if (err.name === 'NotAllowedError') {
return; return;
} }
@ -334,11 +340,12 @@ export const SignInForm = ({ className, initialEmail, isGoogleSSOEnabled }: Sign
type="button" type="button"
size="lg" size="lg"
variant="outline" variant="outline"
loading={isSubmitting} disabled={isSubmitting}
loading={isPasskeyLoading}
className="bg-background text-muted-foreground border" className="bg-background text-muted-foreground border"
onClick={onSignInWithPasskey} onClick={onSignInWithPasskey}
> >
<KeyRoundIcon className="-ml-1 mr-1 h-5 w-5" /> {!isPasskeyLoading && <KeyRoundIcon className="-ml-1 mr-1 h-5 w-5" />}
Passkey Passkey
</Button> </Button>
)} )}