@swype-org/react-sdk 0.1.77 → 0.1.79

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.cjs CHANGED
@@ -692,6 +692,11 @@ function isInCrossOriginIframe() {
692
692
  return true;
693
693
  }
694
694
  }
695
+ function isSafari() {
696
+ if (typeof navigator === "undefined") return false;
697
+ const ua = navigator.userAgent;
698
+ return /Safari/i.test(ua) && !/Chrome|CriOS|Chromium|Edg|OPR|Firefox/i.test(ua);
699
+ }
695
700
  var POPUP_RESULT_TIMEOUT_MS = 12e4;
696
701
  var POPUP_CLOSED_POLL_MS = 500;
697
702
  function createPasskeyViaPopup(options) {
@@ -4520,7 +4525,9 @@ function SwypePaymentInner({
4520
4525
  const [transfer, setTransfer] = react.useState(null);
4521
4526
  const [creatingTransfer, setCreatingTransfer] = react.useState(false);
4522
4527
  const [registeringPasskey, setRegisteringPasskey] = react.useState(false);
4523
- const [passkeyPopupNeeded, setPasskeyPopupNeeded] = react.useState(false);
4528
+ const [passkeyPopupNeeded, setPasskeyPopupNeeded] = react.useState(
4529
+ () => isSafari() && isInCrossOriginIframe()
4530
+ );
4524
4531
  const [activeCredentialId, setActiveCredentialId] = react.useState(() => {
4525
4532
  if (typeof window === "undefined") return null;
4526
4533
  return window.localStorage.getItem(ACTIVE_CREDENTIAL_STORAGE_KEY);
@@ -4587,7 +4594,7 @@ function SwypePaymentInner({
4587
4594
  try {
4588
4595
  await reloadAccounts();
4589
4596
  resetDataLoadingState();
4590
- setTransfer(null);
4597
+ setTransfer(authorizedTransfer);
4591
4598
  setError(null);
4592
4599
  setDeeplinkUri(null);
4593
4600
  setMobileFlow(false);
@@ -4726,6 +4733,17 @@ function SwypePaymentInner({
4726
4733
  if (resolved.clearPersistedFlow) {
4727
4734
  clearMobileFlowState();
4728
4735
  }
4736
+ if (resolved.step === "deposit" && persisted && persisted.isSetup) {
4737
+ try {
4738
+ const existingTransfer = await fetchTransfer(apiBaseUrl, token, persisted.transferId);
4739
+ if (cancelled) return;
4740
+ if (existingTransfer.status === "AUTHORIZED") {
4741
+ await handleAuthorizedMobileReturn(existingTransfer, true);
4742
+ return;
4743
+ }
4744
+ } catch {
4745
+ }
4746
+ }
4729
4747
  if (resolved.step === "open-wallet" && persisted) {
4730
4748
  try {
4731
4749
  const existingTransfer = await fetchTransfer(apiBaseUrl, token, persisted.transferId);