@dloizides/auth-web 1.8.1 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +15 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +33 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +33 -11
- package/dist/index.mjs.map +1 -1
- package/package.json +110 -110
package/dist/index.mjs
CHANGED
|
@@ -235,7 +235,8 @@ var DEFAULT_PASSKEY_LOGIN_LABELS = {
|
|
|
235
235
|
signInButton: "Sign in with a passkey",
|
|
236
236
|
signInHint: "Use your fingerprint, face, or security key to sign in",
|
|
237
237
|
errorCancelled: "Passkey sign-in was cancelled. You can try again or sign in another way.",
|
|
238
|
-
errorFailed: "Passkey sign-in didn't work. Try again, or sign in another way."
|
|
238
|
+
errorFailed: "Passkey sign-in didn't work. Try again, or sign in another way.",
|
|
239
|
+
tryAnotherWay: "Sign in another way"
|
|
239
240
|
};
|
|
240
241
|
var DEFAULT_PASSKEY_SETTINGS_LABELS = {
|
|
241
242
|
title: "Passkeys",
|
|
@@ -337,6 +338,7 @@ var AuthTestIds = {
|
|
|
337
338
|
passkeyLogin: "auth-passkey-login",
|
|
338
339
|
passkeyLoginButton: "auth-passkey-login-button",
|
|
339
340
|
passkeyLoginError: "auth-passkey-login-error",
|
|
341
|
+
passkeyLoginFallback: "auth-passkey-login-fallback",
|
|
340
342
|
// Passkey settings card
|
|
341
343
|
passkeySettings: "auth-passkey-settings",
|
|
342
344
|
passkeySettingsAdd: "auth-passkey-settings-add",
|
|
@@ -2745,6 +2747,10 @@ function usePasskeyCeremony(optionsArg) {
|
|
|
2745
2747
|
const envelope = await optionsResponse.json();
|
|
2746
2748
|
const credential = await runCeremony(mode, envelope);
|
|
2747
2749
|
if (credential === null) {
|
|
2750
|
+
if (mode === "login" /* Login */) {
|
|
2751
|
+
redirectFallback(mode, returnUrl);
|
|
2752
|
+
return;
|
|
2753
|
+
}
|
|
2748
2754
|
setStatus("error" /* Error */);
|
|
2749
2755
|
setError(ERROR_FAILED);
|
|
2750
2756
|
return;
|
|
@@ -2776,13 +2782,16 @@ function usePasskeyCeremony(optionsArg) {
|
|
|
2776
2782
|
}
|
|
2777
2783
|
})();
|
|
2778
2784
|
}, [isSupported, mode, returnUrl, succeed]);
|
|
2785
|
+
const fallbackToRedirect = useCallback(() => {
|
|
2786
|
+
redirectFallback(mode, returnUrl);
|
|
2787
|
+
}, [mode, returnUrl]);
|
|
2779
2788
|
const reset = useCallback(() => {
|
|
2780
2789
|
setStatus("idle" /* Idle */);
|
|
2781
2790
|
setError(null);
|
|
2782
2791
|
}, []);
|
|
2783
2792
|
return useMemo(
|
|
2784
|
-
() => ({ status, error, isSupported, start, reset }),
|
|
2785
|
-
[status, error, isSupported, start, reset]
|
|
2793
|
+
() => ({ status, error, isSupported, start, fallbackToRedirect, reset }),
|
|
2794
|
+
[status, error, isSupported, start, fallbackToRedirect, reset]
|
|
2786
2795
|
);
|
|
2787
2796
|
}
|
|
2788
2797
|
var DEFAULT_RETURN_URL = "/";
|
|
@@ -2801,14 +2810,27 @@ function PasskeyLoginButton({
|
|
|
2801
2810
|
const ceremony = usePasskeyCeremony({ mode: "login" /* Login */, returnUrl });
|
|
2802
2811
|
const error = ceremony.error ?? readPasskeyError();
|
|
2803
2812
|
return /* @__PURE__ */ jsxs(View, { testID: withTestIdPrefix(AuthTestIds.passkeyLogin, testIdPrefix), children: [
|
|
2804
|
-
error !== null ? /* @__PURE__ */
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
|
|
2813
|
+
error !== null ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2814
|
+
/* @__PURE__ */ jsx(
|
|
2815
|
+
Text,
|
|
2816
|
+
{
|
|
2817
|
+
style: styles3.errorText,
|
|
2818
|
+
testID: withTestIdPrefix(AuthTestIds.passkeyLoginError, testIdPrefix),
|
|
2819
|
+
children: error === "cancelled" ? labels.errorCancelled : labels.errorFailed
|
|
2820
|
+
}
|
|
2821
|
+
),
|
|
2822
|
+
/* @__PURE__ */ jsx(
|
|
2823
|
+
TouchableOpacity,
|
|
2824
|
+
{
|
|
2825
|
+
accessibilityHint: labels.tryAnotherWay,
|
|
2826
|
+
accessibilityLabel: labels.tryAnotherWay,
|
|
2827
|
+
accessibilityRole: "button",
|
|
2828
|
+
testID: withTestIdPrefix(AuthTestIds.passkeyLoginFallback, testIdPrefix),
|
|
2829
|
+
onPress: () => ceremony.fallbackToRedirect(),
|
|
2830
|
+
children: /* @__PURE__ */ jsx(Text, { style: styles3.linkText, children: labels.tryAnotherWay })
|
|
2831
|
+
}
|
|
2832
|
+
)
|
|
2833
|
+
] }) : null,
|
|
2812
2834
|
/* @__PURE__ */ jsx(
|
|
2813
2835
|
TouchableOpacity,
|
|
2814
2836
|
{
|