@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.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__ */ jsx(
2805
- Text,
2806
- {
2807
- style: styles3.errorText,
2808
- testID: withTestIdPrefix(AuthTestIds.passkeyLoginError, testIdPrefix),
2809
- children: error === "cancelled" ? labels.errorCancelled : labels.errorFailed
2810
- }
2811
- ) : null,
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
  {