@dynamic-labs/sdk-react-core 4.79.1 → 4.80.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.
Files changed (97) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/package.cjs +3 -3
  3. package/package.js +3 -3
  4. package/package.json +14 -14
  5. package/src/index.cjs +2 -2
  6. package/src/index.js +1 -1
  7. package/src/lib/Main.cjs +2 -2
  8. package/src/lib/Main.js +2 -2
  9. package/src/lib/client/extension/deprecated/mfa/verifyTotpMfaDevice/verifyTotpMfaDevice.d.ts +1 -1
  10. package/src/lib/components/LogoutButton/LogoutButton.cjs +2 -2
  11. package/src/lib/components/LogoutButton/LogoutButton.js +2 -2
  12. package/src/lib/context/DynamicContext/DynamicContext.cjs +6 -4
  13. package/src/lib/context/DynamicContext/DynamicContext.js +6 -4
  14. package/src/lib/context/DynamicContext/hooks/useHandleLogout/index.d.ts +1 -0
  15. package/src/lib/context/DynamicContext/hooks/useHandleLogout/types.d.ts +9 -0
  16. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.cjs +25 -12
  17. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.d.ts +5 -3
  18. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.js +24 -11
  19. package/src/lib/context/DynamicContext/hooks/useRemoveWallet/useRemoveWallet.cjs +3 -3
  20. package/src/lib/context/DynamicContext/hooks/useRemoveWallet/useRemoveWallet.d.ts +3 -2
  21. package/src/lib/context/DynamicContext/hooks/useRemoveWallet/useRemoveWallet.js +3 -3
  22. package/src/lib/context/DynamicContext/types/IDynamicContext.d.ts +2 -0
  23. package/src/lib/context/DynamicContext/types/IInternalDynamicContext.d.ts +8 -1
  24. package/src/lib/context/ViewContext/types/index.d.ts +1 -1
  25. package/src/lib/events/auth.d.ts +2 -1
  26. package/src/lib/styles/index.shadow.cjs +1 -1
  27. package/src/lib/styles/index.shadow.js +1 -1
  28. package/src/lib/utils/constants/authViewLayoutChecks.cjs +2 -0
  29. package/src/lib/utils/constants/authViewLayoutChecks.js +2 -0
  30. package/src/lib/utils/hooks/useDeleteUserAccount/useDeleteUserAccount.cjs +2 -2
  31. package/src/lib/utils/hooks/useDeleteUserAccount/useDeleteUserAccount.js +2 -2
  32. package/src/lib/utils/hooks/useEmbeddedWalletSessionKeys/useEmbeddedWalletSessionKeys.cjs +1 -1
  33. package/src/lib/utils/hooks/useEmbeddedWalletSessionKeys/useEmbeddedWalletSessionKeys.js +1 -1
  34. package/src/lib/utils/hooks/useNetworkConfigurationsFromProjectSettings/useNetworkConfigurationsFromProjectSettings.cjs +7 -2
  35. package/src/lib/utils/hooks/useNetworkConfigurationsFromProjectSettings/useNetworkConfigurationsFromProjectSettings.d.ts +2 -1
  36. package/src/lib/utils/hooks/useNetworkConfigurationsFromProjectSettings/useNetworkConfigurationsFromProjectSettings.js +7 -2
  37. package/src/lib/utils/hooks/useUserAuth/useUserAuth.cjs +3 -3
  38. package/src/lib/utils/hooks/useUserAuth/useUserAuth.js +3 -3
  39. package/src/lib/utils/hooks/useValidateSession/handleStoreAndEnvironmentMismatch/handleStoreAndEnvironmentMismatch.cjs +1 -1
  40. package/src/lib/utils/hooks/useValidateSession/handleStoreAndEnvironmentMismatch/handleStoreAndEnvironmentMismatch.d.ts +2 -1
  41. package/src/lib/utils/hooks/useValidateSession/handleStoreAndEnvironmentMismatch/handleStoreAndEnvironmentMismatch.js +1 -1
  42. package/src/lib/utils/hooks/useValidateSession/handleWalletInfoOutOfSync/handleWalletInfoOutOfSync.cjs +3 -1
  43. package/src/lib/utils/hooks/useValidateSession/handleWalletInfoOutOfSync/handleWalletInfoOutOfSync.d.ts +2 -2
  44. package/src/lib/utils/hooks/useValidateSession/handleWalletInfoOutOfSync/handleWalletInfoOutOfSync.js +3 -1
  45. package/src/lib/utils/hooks/useValidateSession/useValidateSession.cjs +3 -3
  46. package/src/lib/utils/hooks/useValidateSession/useValidateSession.d.ts +3 -3
  47. package/src/lib/utils/hooks/useValidateSession/useValidateSession.js +3 -3
  48. package/src/lib/utils/hooks/useWalletBackup/useWalletBackup.cjs +1 -1
  49. package/src/lib/utils/hooks/useWalletBackup/useWalletBackup.js +1 -1
  50. package/src/lib/utils/hooks/useWalletDelegation/useWalletDelegation.cjs +1 -1
  51. package/src/lib/utils/hooks/useWalletDelegation/useWalletDelegation.js +1 -1
  52. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +2 -2
  53. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.d.ts +3 -2
  54. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +2 -2
  55. package/src/lib/views/BackupUnsuccessfulView/BackupUnsuccessfulView.cjs +5 -5
  56. package/src/lib/views/BackupUnsuccessfulView/BackupUnsuccessfulView.js +5 -5
  57. package/src/lib/views/CollectUserDataView/CollectUserDataView.cjs +2 -2
  58. package/src/lib/views/CollectUserDataView/CollectUserDataView.js +2 -2
  59. package/src/lib/views/CollectUserDataViewNoWallet/CollectUserDataViewNoWallet.cjs +2 -2
  60. package/src/lib/views/CollectUserDataViewNoWallet/CollectUserDataViewNoWallet.js +2 -2
  61. package/src/lib/views/DeviceRegistrationView/DeviceRegistrationView.cjs +2 -2
  62. package/src/lib/views/DeviceRegistrationView/DeviceRegistrationView.js +2 -2
  63. package/src/lib/views/EmailVerification/EmailVerification.cjs +2 -2
  64. package/src/lib/views/EmailVerification/EmailVerification.js +2 -2
  65. package/src/lib/views/EmbeddedDeleteView/EmbeddedDeleteView.cjs +2 -2
  66. package/src/lib/views/EmbeddedDeleteView/EmbeddedDeleteView.js +2 -2
  67. package/src/lib/views/MfaChooseDeviceView/MfaChooseDeviceView.cjs +7 -7
  68. package/src/lib/views/MfaChooseDeviceView/MfaChooseDeviceView.js +7 -7
  69. package/src/lib/views/MfaSecureDeviceView/MfaSecureDeviceView.cjs +7 -7
  70. package/src/lib/views/MfaSecureDeviceView/MfaSecureDeviceView.js +7 -7
  71. package/src/lib/views/MfaVerificationView/MfaVerificationView.cjs +5 -5
  72. package/src/lib/views/MfaVerificationView/MfaVerificationView.js +5 -5
  73. package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.cjs +2 -2
  74. package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.js +2 -2
  75. package/src/lib/views/SmsVerification/SmsVerification.cjs +2 -2
  76. package/src/lib/views/SmsVerification/SmsVerification.js +2 -2
  77. package/src/lib/views/WalletDelegation/WalletDelegationView/WalletDelegationView.cjs +2 -2
  78. package/src/lib/views/WalletDelegation/WalletDelegationView/WalletDelegationView.js +2 -2
  79. package/src/lib/views/WalletLockedView/WalletLockedView.cjs +2 -2
  80. package/src/lib/views/WalletLockedView/WalletLockedView.js +2 -2
  81. package/src/lib/views/WalletUsedView/WalletUsedView.cjs +2 -2
  82. package/src/lib/views/WalletUsedView/WalletUsedView.js +2 -2
  83. package/src/lib/views/viewToComponentMap.cjs +2 -0
  84. package/src/lib/views/viewToComponentMap.d.ts +1 -0
  85. package/src/lib/views/viewToComponentMap.js +2 -0
  86. package/src/lib/widgets/DynamicWidget/components/SingleWalletButtons/SingleWalletButtons.cjs +2 -2
  87. package/src/lib/widgets/DynamicWidget/components/SingleWalletButtons/SingleWalletButtons.js +2 -2
  88. package/src/lib/widgets/DynamicWidget/views/SettingsView/SettingsView.cjs +2 -2
  89. package/src/lib/widgets/DynamicWidget/views/SettingsView/SettingsView.js +2 -2
  90. package/src/lib/widgets/DynamicWidget/views/WaasBackupView/WaasBackupCloudProviderView.cjs +19 -4
  91. package/src/lib/widgets/DynamicWidget/views/WaasBackupView/WaasBackupCloudProviderView.js +19 -4
  92. package/src/lib/widgets/DynamicWidget/views/WaasBackupView/WaasBackupGrantAccessView.cjs +50 -0
  93. package/src/lib/widgets/DynamicWidget/views/WaasBackupView/WaasBackupGrantAccessView.d.ts +2 -0
  94. package/src/lib/widgets/DynamicWidget/views/WaasBackupView/WaasBackupGrantAccessView.js +46 -0
  95. package/src/lib/widgets/DynamicWidget/views/WaasBackupView/WaasBackupProgressView.cjs +23 -3
  96. package/src/lib/widgets/DynamicWidget/views/WaasBackupView/WaasBackupProgressView.js +23 -3
  97. package/src/lib/widgets/DynamicWidget/views/WaasBackupView/index.d.ts +1 -0
@@ -11,15 +11,18 @@ import { useViewContext } from '../../../../context/ViewContext/ViewContext.js';
11
11
  import { ReactComponent as SvgChevronLeft } from '../../../../shared/assets/chevron-left.js';
12
12
  import { ReactComponent as SvgExclamation } from '../../../../shared/assets/exclamation.js';
13
13
  import '@dynamic-labs/iconic';
14
+ import { useGoogleDriveBackupReadiness } from '../../../../utils/hooks/useGoogleDriveBackupReadiness/useGoogleDriveBackupReadiness.js';
14
15
  import { useWalletBackup, useBackupWallets } from '../../../../utils/hooks/useWalletBackup/useWalletBackup.js';
15
16
  import { CloudBackupProvider } from '../../../../utils/hooks/useWalletBackup/types.js';
17
+ import { isInsufficientGoogleDriveScopesError } from '../../../../utils/hooks/useWalletBackup/googleDriveBackupErrors.js';
16
18
  import { CLOUD_PROVIDER_CONFIGS } from '../../../../utils/hooks/useWalletBackup/cloudProviders.js';
17
19
 
18
20
  const WaasBackupProgressView = ({ provider = CloudBackupProvider.GoogleDrive, }) => {
19
21
  const { goBack, pushView } = useViewContext();
20
22
  const { t } = useTranslation();
21
23
  const providerConfig = CLOUD_PROVIDER_CONFIGS[provider];
22
- const { getWalletsToBackup, showICloudAuth, checkICloudAuth, hideICloudAuth, } = useWalletBackup();
24
+ const { getWalletsToBackup, showICloudAuth, checkICloudAuth, hideICloudAuth, lastBackupError, clearBackupError, } = useWalletBackup();
25
+ const { requestAccess: requestDriveAccess, isChecking: isRequestingDriveAccess, } = useGoogleDriveBackupReadiness();
23
26
  const [displayContainer, setDisplayContainer] = useState(null);
24
27
  const [authState, setAuthState] = useState('pending');
25
28
  const [authError, setAuthError] = useState(null);
@@ -126,6 +129,15 @@ const WaasBackupProgressView = ({ provider = CloudBackupProvider.GoogleDrive, })
126
129
  retry();
127
130
  }
128
131
  }, [providerConfig.requiresIframe, retry]);
132
+ const handleGrantDriveAccessAndRetry = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
133
+ clearBackupError();
134
+ const result = yield requestDriveAccess();
135
+ if (result.status === 'ready') {
136
+ retry();
137
+ }
138
+ }), [clearBackupError, requestDriveAccess, retry]);
139
+ const isDriveScopesError = provider === CloudBackupProvider.GoogleDrive &&
140
+ isInsufficientGoogleDriveScopesError(lastBackupError);
129
141
  const getProgressText = () => {
130
142
  if (isComplete) {
131
143
  return t('dyn_waas.backup.progress_complete');
@@ -140,9 +152,17 @@ const WaasBackupProgressView = ({ provider = CloudBackupProvider.GoogleDrive, })
140
152
  };
141
153
  const renderProgressContent = () => {
142
154
  if (hasError || authState === 'failed') {
143
- return (jsxs(Fragment, { children: [jsx(Typography, { variant: 'body_normal', color: 'primary', copykey: 'dyn_waas.backup.error_title', className: 'waas-backup-view__progress-title', children: authError || t('dyn_waas.backup.error_title') }), jsx("div", { className: 'waas-backup-view__progress-actions', children: jsx(TypographyButton, { dataTestId: 'retry-backup-button', onClick: handleRetry, copykey: 'dyn_waas.backup.error_try_again', buttonVariant: 'brand-primary', typographyProps: {
155
+ const titleCopykey = isDriveScopesError
156
+ ? 'dyn_waas.backup.gdrive_post_flight_title'
157
+ : 'dyn_waas.backup.error_title';
158
+ const titleText = isDriveScopesError
159
+ ? t('dyn_waas.backup.gdrive_post_flight_title')
160
+ : authError || t('dyn_waas.backup.error_title');
161
+ return (jsxs(Fragment, { children: [jsx(Typography, { variant: 'body_normal', color: 'primary', copykey: titleCopykey, className: 'waas-backup-view__progress-title', children: titleText }), jsx("div", { className: 'waas-backup-view__progress-actions', children: isDriveScopesError ? (jsx(TypographyButton, { dataTestId: 'grant-drive-access-button', onClick: handleGrantDriveAccessAndRetry, disabled: isRequestingDriveAccess, copykey: 'dyn_waas.backup.gdrive_grant_access_cta', buttonVariant: 'brand-primary', typographyProps: {
162
+ color: 'inherit',
163
+ }, expanded: true, children: t('dyn_waas.backup.gdrive_grant_access_cta') })) : (jsx(TypographyButton, { dataTestId: 'retry-backup-button', onClick: handleRetry, copykey: 'dyn_waas.backup.error_try_again', buttonVariant: 'brand-primary', typographyProps: {
144
164
  color: 'inherit',
145
- }, expanded: true, children: t('dyn_waas.backup.error_try_again') }) })] }));
165
+ }, expanded: true, children: t('dyn_waas.backup.error_try_again') })) })] }));
146
166
  }
147
167
  if (providerConfig.requiresIframe &&
148
168
  authState === 'shown' &&
@@ -1,6 +1,7 @@
1
1
  export { BackupStepper } from './BackupStepper';
2
2
  export { WaasBackupCloudProviderView } from './WaasBackupCloudProviderView';
3
3
  export { WaasBackupDownloadView } from './WaasBackupDownloadView';
4
+ export { WaasBackupGrantAccessView } from './WaasBackupGrantAccessView';
4
5
  export { WaasBackupInfoView } from './WaasBackupInfoView';
5
6
  export { WaasBackupProgressView } from './WaasBackupProgressView';
6
7
  export { WaasBackupSuccessView } from './WaasBackupSuccessView';