@dynamic-labs/sdk-react-core 1.1.0-alpha.25 → 1.1.0-alpha.26

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 (54) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +10 -10
  5. package/src/lib/components/Icon/Icon.cjs +1 -0
  6. package/src/lib/components/Icon/Icon.js +1 -0
  7. package/src/lib/components/Icon/Icon.types.d.ts +1 -1
  8. package/src/lib/components/OTPVerificationView/OTPVerificationView.cjs +13 -60
  9. package/src/lib/components/OTPVerificationView/OTPVerificationView.d.ts +1 -0
  10. package/src/lib/components/OTPVerificationView/OTPVerificationView.js +13 -60
  11. package/src/lib/components/RetrySendVerificationCodeSection/RetrySendVerificationCodeSection.cjs +97 -0
  12. package/src/lib/components/RetrySendVerificationCodeSection/RetrySendVerificationCodeSection.d.ts +9 -0
  13. package/src/lib/components/RetrySendVerificationCodeSection/RetrySendVerificationCodeSection.js +93 -0
  14. package/src/lib/components/RetrySendVerificationCodeSection/index.d.ts +1 -0
  15. package/src/lib/context/DynamicContext/DynamicContext.cjs +2 -2
  16. package/src/lib/context/DynamicContext/DynamicContext.js +2 -2
  17. package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.cjs +4 -0
  18. package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.js +4 -0
  19. package/src/lib/context/DynamicContext/types/index.d.ts +3 -2
  20. package/src/lib/context/DynamicContext/useCustomerCallbacks/types.d.ts +2 -4
  21. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.cjs +4 -50
  22. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.d.ts +1 -1
  23. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.js +4 -50
  24. package/src/lib/events/dynamicEvents.d.ts +2 -0
  25. package/src/lib/modals/TransactionConfirmationModal/TransactionConfirmationModal.cjs +1 -2
  26. package/src/lib/modals/TransactionConfirmationModal/TransactionConfirmationModal.js +1 -2
  27. package/src/lib/styles/index.shadow.cjs +1 -1
  28. package/src/lib/styles/index.shadow.js +1 -1
  29. package/src/lib/utils/functions/index.d.ts +0 -1
  30. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +6 -6
  31. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +6 -6
  32. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +4 -5
  33. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +4 -5
  34. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +38 -5
  35. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +16 -5
  36. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +39 -6
  37. package/src/lib/utils/hooks/useIsLoggedIn/useIsLoggedIn.cjs +3 -2
  38. package/src/lib/utils/hooks/useIsLoggedIn/useIsLoggedIn.js +3 -2
  39. package/src/lib/views/EmailVerification/EmailVerification.cjs +5 -13
  40. package/src/lib/views/EmailVerification/EmailVerification.js +5 -13
  41. package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.cjs +1 -1
  42. package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.js +1 -1
  43. package/src/lib/views/SendBalanceView/components/TransactionStage/TransactionStage.cjs +1 -2
  44. package/src/lib/views/SendBalanceView/components/TransactionStage/TransactionStage.js +1 -2
  45. package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.cjs +6 -1
  46. package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.js +6 -1
  47. package/src/lib/views/TransactionConfirmationView/helpers/transactionErrorMessage.cjs +1 -1
  48. package/src/lib/views/TransactionConfirmationView/helpers/transactionErrorMessage.js +1 -1
  49. package/src/lib/widgets/DynamicWidget/components/EmailOTPConnectorPendingSignModalContent/EmailOTPConnectorPendingSignModalContent.cjs +1 -1
  50. package/src/lib/widgets/DynamicWidget/components/EmailOTPConnectorPendingSignModalContent/EmailOTPConnectorPendingSignModalContent.js +1 -1
  51. package/src/lib/utils/functions/sendTransactionWithAutoNonce/index.d.ts +0 -1
  52. package/src/lib/utils/functions/sendTransactionWithAutoNonce/sendTransactionWithAutoNonce.cjs +0 -49
  53. package/src/lib/utils/functions/sendTransactionWithAutoNonce/sendTransactionWithAutoNonce.d.ts +0 -18
  54. package/src/lib/utils/functions/sendTransactionWithAutoNonce/sendTransactionWithAutoNonce.js +0 -44
package/CHANGELOG.md CHANGED
@@ -1,4 +1,18 @@
1
1
 
2
+ ## [1.1.0-alpha.26](https://github.com/dynamic-labs/DynamicAuth/compare/v1.1.0-alpha.25...v1.1.0-alpha.26) (2024-02-07)
3
+
4
+
5
+ ### Features
6
+
7
+ * add retry when using magic ([#4579](https://github.com/dynamic-labs/DynamicAuth/issues/4579)) ([183561c](https://github.com/dynamic-labs/DynamicAuth/commit/183561cc64f083fd1489c38a8cc8b1c4c51d2924))
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * bug where deprecated fields were still being used in the SDK ([#4604](https://github.com/dynamic-labs/DynamicAuth/issues/4604)) ([4fd15fc](https://github.com/dynamic-labs/DynamicAuth/commit/4fd15fc4daa9c5b7bbc81ce05a3b046c80a6d5b4))
13
+ * log magic RPC error and update magic network error ([#4606](https://github.com/dynamic-labs/DynamicAuth/issues/4606)) ([2206961](https://github.com/dynamic-labs/DynamicAuth/commit/22069618a317bc40b1a17fd521eadf0956983de4))
14
+ * onConnect is properly called for additional connected wallets ([#4607](https://github.com/dynamic-labs/DynamicAuth/issues/4607)) ([23241f4](https://github.com/dynamic-labs/DynamicAuth/commit/23241f4d5dc91ac9ca1251710161efbfce42dc40))
15
+
2
16
  ## [1.1.0-alpha.25](https://github.com/dynamic-labs/DynamicAuth/compare/v1.1.0-alpha.24...v1.1.0-alpha.25) (2024-02-05)
3
17
 
4
18
 
package/package.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var version = "1.1.0-alpha.25";
5
+ var version = "1.1.0-alpha.26";
6
6
  var dependencies = {
7
7
  "@dynamic-labs/iconic": "0.1.52",
8
8
  "@dynamic-labs/sdk-api": "0.0.363",
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
- var version = "1.1.0-alpha.25";
1
+ var version = "1.1.0-alpha.26";
2
2
  var dependencies = {
3
3
  "@dynamic-labs/iconic": "0.1.52",
4
4
  "@dynamic-labs/sdk-api": "0.0.363",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "1.1.0-alpha.25",
3
+ "version": "1.1.0-alpha.26",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dynamic-labs/DynamicAuth.git",
@@ -17,15 +17,15 @@
17
17
  "react-focus-lock": "2.9.2",
18
18
  "react-i18next": "^13.2.0",
19
19
  "yup": "0.32.11",
20
- "@dynamic-labs/ethereum": "1.1.0-alpha.25",
21
- "@dynamic-labs/logger": "1.1.0-alpha.25",
22
- "@dynamic-labs/multi-wallet": "1.1.0-alpha.25",
23
- "@dynamic-labs/rpc-providers": "1.1.0-alpha.25",
24
- "@dynamic-labs/types": "1.1.0-alpha.25",
25
- "@dynamic-labs/utils": "1.1.0-alpha.25",
26
- "@dynamic-labs/viem-utils": "1.1.0-alpha.25",
27
- "@dynamic-labs/wallet-book": "1.1.0-alpha.25",
28
- "@dynamic-labs/wallet-connector-core": "1.1.0-alpha.25",
20
+ "@dynamic-labs/ethereum": "1.1.0-alpha.26",
21
+ "@dynamic-labs/logger": "1.1.0-alpha.26",
22
+ "@dynamic-labs/multi-wallet": "1.1.0-alpha.26",
23
+ "@dynamic-labs/rpc-providers": "1.1.0-alpha.26",
24
+ "@dynamic-labs/types": "1.1.0-alpha.26",
25
+ "@dynamic-labs/utils": "1.1.0-alpha.26",
26
+ "@dynamic-labs/viem-utils": "1.1.0-alpha.26",
27
+ "@dynamic-labs/wallet-book": "1.1.0-alpha.26",
28
+ "@dynamic-labs/wallet-connector-core": "1.1.0-alpha.26",
29
29
  "eventemitter3": "5.0.1"
30
30
  },
31
31
  "devDependencies": {
@@ -8,6 +8,7 @@ var classNames = require('../../utils/functions/classNames/classNames.cjs');
8
8
  const Icon = ({ children, className = '', color, size, }) => {
9
9
  const colorClassNameMap = {
10
10
  'brand-primary': 'icon--color-brand-primary',
11
+ 'success-1': 'icon--color-success-1',
11
12
  'text-error': 'icon--color-text-error',
12
13
  'text-primary': 'icon--color-text-primary',
13
14
  'text-secondary': 'icon--color-text-secondary',
@@ -4,6 +4,7 @@ import { classNames } from '../../utils/functions/classNames/classNames.js';
4
4
  const Icon = ({ children, className = '', color, size, }) => {
5
5
  const colorClassNameMap = {
6
6
  'brand-primary': 'icon--color-brand-primary',
7
+ 'success-1': 'icon--color-success-1',
7
8
  'text-error': 'icon--color-text-error',
8
9
  'text-primary': 'icon--color-text-primary',
9
10
  'text-secondary': 'icon--color-text-secondary',
@@ -1,5 +1,5 @@
1
1
  import { FC, ReactElement } from 'react';
2
- export type IconColor = 'text-primary' | 'text-secondary' | 'text-tertiary' | 'text-error' | 'brand-primary';
2
+ export type IconColor = 'text-primary' | 'text-secondary' | 'text-tertiary' | 'text-error' | 'brand-primary' | 'success-1';
3
3
  export type IconSize = 'xsmall' | 'small' | 'medium' | 'large' | 'mini';
4
4
  export type IconProps = {
5
5
  children: ReactElement;
@@ -5,11 +5,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var React = require('react');
7
7
  var reactI18next = require('react-i18next');
8
- var classNames = require('../../utils/functions/classNames/classNames.cjs');
9
- require('../../events/dynamicEvents.cjs');
10
- require('../../../../_virtual/_tslib.cjs');
11
- require('@dynamic-labs/utils');
12
- require('../../context/DynamicContext/DynamicContext.cjs');
8
+ var IconButton = require('../IconButton/IconButton.cjs');
9
+ var IconWithSpinner = require('../IconWithSpinner/IconWithSpinner.cjs');
10
+ var ModalHeader = require('../ModalHeader/ModalHeader.cjs');
11
+ var Typography = require('../Typography/Typography.cjs');
12
+ var PinField = require('../PinField/PinField.cjs');
13
+ var IconWithStatus = require('../IconWithStatus/IconWithStatus.cjs');
14
+ var ModalHeaderBanner = require('../ModalHeaderBanner/ModalHeaderBanner.cjs');
15
+ var Icon = require('../Icon/Icon.cjs');
13
16
  require('@dynamic-labs/sdk-api');
14
17
  require('../../shared/logger.cjs');
15
18
  require('@dynamic-labs/iconic');
@@ -24,63 +27,13 @@ require('../../utils/constants/colors.cjs');
24
27
  require('../../utils/constants/values.cjs');
25
28
  require('../../shared/utils/classes/storage/localStorage.cjs');
26
29
  require('viem');
30
+ require('@dynamic-labs/utils');
27
31
  require('../../shared/consts/index.cjs');
28
- require('../../context/CaptchaContext/CaptchaContext.cjs');
29
- require('../../context/ErrorContext/ErrorContext.cjs');
30
- require('@dynamic-labs/multi-wallet');
31
- require('viem/chains');
32
- require('../../context/AccessDeniedContext/AccessDeniedContext.cjs');
33
- require('../../context/AccountExistsContext/AccountExistsContext.cjs');
34
- require('../../config/ApiEndpoint.cjs');
35
- require('../../context/EmailVerificationContext/EmailVerificationContext.cjs');
36
- require('react-dom');
37
- require('../../context/ThemeContext/ThemeContext.cjs');
38
- require('@dynamic-labs/types');
39
- require('yup');
40
- require('../../context/MockContext/MockContext.cjs');
41
- require('../../utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.cjs');
42
- require('../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
43
- require('@dynamic-labs/rpc-providers');
44
- require('../../context/UserWalletsContext/UserWalletsContext.cjs');
45
- require('../Transition/ZoomTransition/ZoomTransition.cjs');
46
- require('../Transition/SlideInUpTransition/SlideInUpTransition.cjs');
47
- require('../Transition/OpacityTransition/OpacityTransition.cjs');
48
- require('../ShadowDOM/ShadowDOM.cjs');
49
- require('../OverlayCard/OverlayCard.context.cjs');
50
- require('../../context/FooterAnimationContext/index.cjs');
51
- var Typography = require('../Typography/Typography.cjs');
52
- require('../../context/WalletGroupContext/WalletGroupContext.cjs');
53
- require('../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
54
- require('react-focus-lock');
55
- var IconWithSpinner = require('../IconWithSpinner/IconWithSpinner.cjs');
56
- require('../../context/LoadingContext/LoadingContext.cjs');
57
- var IconWithStatus = require('../IconWithStatus/IconWithStatus.cjs');
58
- require('i18next');
59
- require('qrcode');
60
- require('../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
61
- require('../UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.cjs');
62
- require('formik');
63
- var ModalHeader = require('../ModalHeader/ModalHeader.cjs');
64
- var IconButton = require('../IconButton/IconButton.cjs');
65
- var Icon = require('../Icon/Icon.cjs');
66
- require('../Alert/Alert.cjs');
67
- require('../PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs');
68
- require('../../context/PasskeyContext/PasskeyContext.cjs');
69
- require('@dynamic-labs/viem-utils');
70
- require('../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
71
- require('../InlineWidget/InlineWidget.cjs');
72
- require('../MenuList/Dropdown/Dropdown.cjs');
73
- var ModalHeaderBanner = require('../ModalHeaderBanner/ModalHeaderBanner.cjs');
74
32
  var shortenEmail = require('../../shared/utils/functions/shortenEmail/shortenEmail.cjs');
75
- var PinField = require('../PinField/PinField.cjs');
76
- require('../Popper/Popper/Popper.cjs');
77
- require('../Popper/PopperContext/PopperContext.cjs');
78
- require('../../views/WalletList/WalletList.cjs');
79
- require('@hcaptcha/react-hcaptcha');
80
- require('../../context/SocialRedirectContext/SocialRedirectContext.cjs');
81
- require('../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
33
+ var classNames = require('../../utils/functions/classNames/classNames.cjs');
34
+ var RetrySendVerificationCodeSection = require('../RetrySendVerificationCodeSection/RetrySendVerificationCodeSection.cjs');
82
35
 
83
- const OTPVerificationView = ({ onClickBack, onClickEditEmail, isLoading, email, onPinComplete, isValid, error, onPinChange, successBannerTextKey, }) => {
36
+ const OTPVerificationView = ({ onClickBack, onClickEditEmail, isLoading, email, onPinComplete, isValid, error, retryHandler, onPinChange, successBannerTextKey, }) => {
84
37
  const { t } = reactI18next.useTranslation();
85
38
  const backButton = onClickBack && (jsxRuntime.jsx(IconButton.IconButton, { type: 'button', onClick: onClickBack, "data-testid": 'back-button', children: jsxRuntime.jsx(chevronLeft.ReactComponent, {}) }));
86
39
  const EmailIcon = React.useMemo(() => {
@@ -92,7 +45,7 @@ const OTPVerificationView = ({ onClickBack, onClickEditEmail, isLoading, email,
92
45
  : 'dyn_otp_verification.confirm_code';
93
46
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(ModalHeader.ModalHeader, { alignContent: 'bottom', leading: onClickBack && backButton, children: jsxRuntime.jsx("div", { className: 'otp-verification-view__status-header', children: jsxRuntime.jsx(Typography.Typography, { weight: 'medium', variant: 'title', color: 'primary', className: 'otp-verification-view__title', copykey: titleCopyKey(), children: t(titleCopyKey()) }) }) }), successBannerTextKey && (jsxRuntime.jsx(ModalHeaderBanner.ModalHeaderBanner, { type: 'notice', messageKey: successBannerTextKey, disableTruncate: true })), jsxRuntime.jsx(ModalHeaderBanner.ModalHeaderBanner, { type: 'error', messageKey: error === null || error === void 0 ? void 0 : error.message }), jsxRuntime.jsxs("div", { className: classNames.classNames('otp-verification-view', {
94
47
  'otp-verification-view--message': Boolean(successBannerTextKey || error),
95
- }), children: [isValid && (jsxRuntime.jsx(IconWithStatus.IconWithStatus, { Icon: EmailIcon, iconSize: 96, InnerIcon: check.ReactComponent })), !isValid && (jsxRuntime.jsx(IconWithSpinner.IconWithSpinner, { Icon: EmailIcon, iconSize: 96, isSpinning: isLoading, className: 'otp-verification-view__icon-with-spinner', treatAsFunctionComponent: true })), jsxRuntime.jsxs("div", { className: 'otp-verification-view__body', children: [isValid && (jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', copykey: 'dyn_otp_verification.hang_tight', children: t('dyn_otp_verification.hang_tight') })), !isValid && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', copykey: 'dyn_otp_verification.code_sent', children: t('dyn_otp_verification.code_sent') }), jsxRuntime.jsxs("div", { className: 'otp-verification-view__email-container', children: [jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', weight: 'bold', color: 'secondary', children: shortenEmail.shortenEmail(email) }), onClickEditEmail && (jsxRuntime.jsx(IconButton.IconButton, { onClick: onClickEditEmail, "data-testid": 'otp-verification-view__edit-button', children: jsxRuntime.jsx(Icon.Icon, { color: 'text-tertiary', children: jsxRuntime.jsx(pencilAltIcon.ReactComponent, {}) }) }))] })] }))] }), jsxRuntime.jsx(PinField.PinField, { initialValue: Array(6).join('.').split('.'), isLoading: isLoading, handleComplete: onPinComplete, isValidated: isValid, inputMode: 'numeric', pattern: '[0-9]*', hasError: Boolean(error), onChange: onPinChange })] })] }));
48
+ }), children: [isValid && (jsxRuntime.jsx(IconWithStatus.IconWithStatus, { Icon: EmailIcon, iconSize: 96, InnerIcon: check.ReactComponent })), !isValid && (jsxRuntime.jsx(IconWithSpinner.IconWithSpinner, { Icon: EmailIcon, iconSize: 96, isSpinning: isLoading, className: 'otp-verification-view__icon-with-spinner', treatAsFunctionComponent: true })), jsxRuntime.jsxs("div", { className: 'otp-verification-view__body', children: [isValid && (jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', copykey: 'dyn_otp_verification.hang_tight', children: t('dyn_otp_verification.hang_tight') })), !isValid && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', copykey: 'dyn_otp_verification.code_sent', children: t('dyn_otp_verification.code_sent') }), jsxRuntime.jsxs("div", { className: 'otp-verification-view__email-container', children: [jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', weight: 'bold', color: 'secondary', children: shortenEmail.shortenEmail(email) }), onClickEditEmail && (jsxRuntime.jsx(IconButton.IconButton, { onClick: onClickEditEmail, "data-testid": 'otp-verification-view__edit-button', children: jsxRuntime.jsx(Icon.Icon, { color: 'text-tertiary', children: jsxRuntime.jsx(pencilAltIcon.ReactComponent, {}) }) }))] })] }))] }), jsxRuntime.jsx(PinField.PinField, { initialValue: Array(6).join('.').split('.'), isLoading: isLoading, handleComplete: onPinComplete, isValidated: isValid, inputMode: 'numeric', pattern: '[0-9]*', hasError: Boolean(error), onChange: onPinChange }), jsxRuntime.jsx(RetrySendVerificationCodeSection.RetrySendVerificationCodeSection, { className: 'otp-verification-view__retry-container', retryHandler: retryHandler })] })] }));
96
49
  };
97
50
 
98
51
  exports.OTPVerificationView = OTPVerificationView;
@@ -7,6 +7,7 @@ type OtpVerificationLayoutProps = {
7
7
  onClickBack?: MouseEventHandler<HTMLButtonElement>;
8
8
  onClickEditEmail?: MouseEventHandler<HTMLButtonElement>;
9
9
  onPinChange?: (value: string) => void;
10
+ retryHandler: () => Promise<void> | void;
10
11
  onPinComplete: (value: string) => void;
11
12
  successBannerTextKey?: string;
12
13
  };
@@ -1,11 +1,14 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { useMemo } from 'react';
3
3
  import { useTranslation } from 'react-i18next';
4
- import { classNames } from '../../utils/functions/classNames/classNames.js';
5
- import '../../events/dynamicEvents.js';
6
- import '../../../../_virtual/_tslib.js';
7
- import '@dynamic-labs/utils';
8
- import '../../context/DynamicContext/DynamicContext.js';
4
+ import { IconButton } from '../IconButton/IconButton.js';
5
+ import { IconWithSpinner } from '../IconWithSpinner/IconWithSpinner.js';
6
+ import { ModalHeader } from '../ModalHeader/ModalHeader.js';
7
+ import { Typography } from '../Typography/Typography.js';
8
+ import { PinField } from '../PinField/PinField.js';
9
+ import { IconWithStatus } from '../IconWithStatus/IconWithStatus.js';
10
+ import { ModalHeaderBanner } from '../ModalHeaderBanner/ModalHeaderBanner.js';
11
+ import { Icon } from '../Icon/Icon.js';
9
12
  import '@dynamic-labs/sdk-api';
10
13
  import '../../shared/logger.js';
11
14
  import '@dynamic-labs/iconic';
@@ -20,63 +23,13 @@ import '../../utils/constants/colors.js';
20
23
  import '../../utils/constants/values.js';
21
24
  import '../../shared/utils/classes/storage/localStorage.js';
22
25
  import 'viem';
26
+ import '@dynamic-labs/utils';
23
27
  import '../../shared/consts/index.js';
24
- import '../../context/CaptchaContext/CaptchaContext.js';
25
- import '../../context/ErrorContext/ErrorContext.js';
26
- import '@dynamic-labs/multi-wallet';
27
- import 'viem/chains';
28
- import '../../context/AccessDeniedContext/AccessDeniedContext.js';
29
- import '../../context/AccountExistsContext/AccountExistsContext.js';
30
- import '../../config/ApiEndpoint.js';
31
- import '../../context/EmailVerificationContext/EmailVerificationContext.js';
32
- import 'react-dom';
33
- import '../../context/ThemeContext/ThemeContext.js';
34
- import '@dynamic-labs/types';
35
- import 'yup';
36
- import '../../context/MockContext/MockContext.js';
37
- import '../../utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.js';
38
- import '../../context/UserFieldEditorContext/UserFieldEditorContext.js';
39
- import '@dynamic-labs/rpc-providers';
40
- import '../../context/UserWalletsContext/UserWalletsContext.js';
41
- import '../Transition/ZoomTransition/ZoomTransition.js';
42
- import '../Transition/SlideInUpTransition/SlideInUpTransition.js';
43
- import '../Transition/OpacityTransition/OpacityTransition.js';
44
- import '../ShadowDOM/ShadowDOM.js';
45
- import '../OverlayCard/OverlayCard.context.js';
46
- import '../../context/FooterAnimationContext/index.js';
47
- import { Typography } from '../Typography/Typography.js';
48
- import '../../context/WalletGroupContext/WalletGroupContext.js';
49
- import '../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
50
- import 'react-focus-lock';
51
- import { IconWithSpinner } from '../IconWithSpinner/IconWithSpinner.js';
52
- import '../../context/LoadingContext/LoadingContext.js';
53
- import { IconWithStatus } from '../IconWithStatus/IconWithStatus.js';
54
- import 'i18next';
55
- import 'qrcode';
56
- import '../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
57
- import '../UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.js';
58
- import 'formik';
59
- import { ModalHeader } from '../ModalHeader/ModalHeader.js';
60
- import { IconButton } from '../IconButton/IconButton.js';
61
- import { Icon } from '../Icon/Icon.js';
62
- import '../Alert/Alert.js';
63
- import '../PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.js';
64
- import '../../context/PasskeyContext/PasskeyContext.js';
65
- import '@dynamic-labs/viem-utils';
66
- import '../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
67
- import '../InlineWidget/InlineWidget.js';
68
- import '../MenuList/Dropdown/Dropdown.js';
69
- import { ModalHeaderBanner } from '../ModalHeaderBanner/ModalHeaderBanner.js';
70
28
  import { shortenEmail } from '../../shared/utils/functions/shortenEmail/shortenEmail.js';
71
- import { PinField } from '../PinField/PinField.js';
72
- import '../Popper/Popper/Popper.js';
73
- import '../Popper/PopperContext/PopperContext.js';
74
- import '../../views/WalletList/WalletList.js';
75
- import '@hcaptcha/react-hcaptcha';
76
- import '../../context/SocialRedirectContext/SocialRedirectContext.js';
77
- import '../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
29
+ import { classNames } from '../../utils/functions/classNames/classNames.js';
30
+ import { RetrySendVerificationCodeSection } from '../RetrySendVerificationCodeSection/RetrySendVerificationCodeSection.js';
78
31
 
79
- const OTPVerificationView = ({ onClickBack, onClickEditEmail, isLoading, email, onPinComplete, isValid, error, onPinChange, successBannerTextKey, }) => {
32
+ const OTPVerificationView = ({ onClickBack, onClickEditEmail, isLoading, email, onPinComplete, isValid, error, retryHandler, onPinChange, successBannerTextKey, }) => {
80
33
  const { t } = useTranslation();
81
34
  const backButton = onClickBack && (jsx(IconButton, { type: 'button', onClick: onClickBack, "data-testid": 'back-button', children: jsx(SvgChevronLeft, {}) }));
82
35
  const EmailIcon = useMemo(() => {
@@ -88,7 +41,7 @@ const OTPVerificationView = ({ onClickBack, onClickEditEmail, isLoading, email,
88
41
  : 'dyn_otp_verification.confirm_code';
89
42
  return (jsxs(Fragment, { children: [jsx(ModalHeader, { alignContent: 'bottom', leading: onClickBack && backButton, children: jsx("div", { className: 'otp-verification-view__status-header', children: jsx(Typography, { weight: 'medium', variant: 'title', color: 'primary', className: 'otp-verification-view__title', copykey: titleCopyKey(), children: t(titleCopyKey()) }) }) }), successBannerTextKey && (jsx(ModalHeaderBanner, { type: 'notice', messageKey: successBannerTextKey, disableTruncate: true })), jsx(ModalHeaderBanner, { type: 'error', messageKey: error === null || error === void 0 ? void 0 : error.message }), jsxs("div", { className: classNames('otp-verification-view', {
90
43
  'otp-verification-view--message': Boolean(successBannerTextKey || error),
91
- }), children: [isValid && (jsx(IconWithStatus, { Icon: EmailIcon, iconSize: 96, InnerIcon: SvgCheck })), !isValid && (jsx(IconWithSpinner, { Icon: EmailIcon, iconSize: 96, isSpinning: isLoading, className: 'otp-verification-view__icon-with-spinner', treatAsFunctionComponent: true })), jsxs("div", { className: 'otp-verification-view__body', children: [isValid && (jsx(Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', copykey: 'dyn_otp_verification.hang_tight', children: t('dyn_otp_verification.hang_tight') })), !isValid && (jsxs(Fragment, { children: [jsx(Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', copykey: 'dyn_otp_verification.code_sent', children: t('dyn_otp_verification.code_sent') }), jsxs("div", { className: 'otp-verification-view__email-container', children: [jsx(Typography, { variant: 'body_normal', weight: 'bold', color: 'secondary', children: shortenEmail(email) }), onClickEditEmail && (jsx(IconButton, { onClick: onClickEditEmail, "data-testid": 'otp-verification-view__edit-button', children: jsx(Icon, { color: 'text-tertiary', children: jsx(SvgPencilAltIcon, {}) }) }))] })] }))] }), jsx(PinField, { initialValue: Array(6).join('.').split('.'), isLoading: isLoading, handleComplete: onPinComplete, isValidated: isValid, inputMode: 'numeric', pattern: '[0-9]*', hasError: Boolean(error), onChange: onPinChange })] })] }));
44
+ }), children: [isValid && (jsx(IconWithStatus, { Icon: EmailIcon, iconSize: 96, InnerIcon: SvgCheck })), !isValid && (jsx(IconWithSpinner, { Icon: EmailIcon, iconSize: 96, isSpinning: isLoading, className: 'otp-verification-view__icon-with-spinner', treatAsFunctionComponent: true })), jsxs("div", { className: 'otp-verification-view__body', children: [isValid && (jsx(Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', copykey: 'dyn_otp_verification.hang_tight', children: t('dyn_otp_verification.hang_tight') })), !isValid && (jsxs(Fragment, { children: [jsx(Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', copykey: 'dyn_otp_verification.code_sent', children: t('dyn_otp_verification.code_sent') }), jsxs("div", { className: 'otp-verification-view__email-container', children: [jsx(Typography, { variant: 'body_normal', weight: 'bold', color: 'secondary', children: shortenEmail(email) }), onClickEditEmail && (jsx(IconButton, { onClick: onClickEditEmail, "data-testid": 'otp-verification-view__edit-button', children: jsx(Icon, { color: 'text-tertiary', children: jsx(SvgPencilAltIcon, {}) }) }))] })] }))] }), jsx(PinField, { initialValue: Array(6).join('.').split('.'), isLoading: isLoading, handleComplete: onPinComplete, isValidated: isValid, inputMode: 'numeric', pattern: '[0-9]*', hasError: Boolean(error), onChange: onPinChange }), jsx(RetrySendVerificationCodeSection, { className: 'otp-verification-view__retry-container', retryHandler: retryHandler })] })] }));
92
45
  };
93
46
 
94
47
  export { OTPVerificationView };
@@ -0,0 +1,97 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var React = require('react');
7
+ var reactI18next = require('react-i18next');
8
+ require('../../events/dynamicEvents.cjs');
9
+ require('../../../../_virtual/_tslib.cjs');
10
+ require('@dynamic-labs/utils');
11
+ require('../../context/DynamicContext/DynamicContext.cjs');
12
+ require('@dynamic-labs/sdk-api');
13
+ require('../../shared/logger.cjs');
14
+ require('@dynamic-labs/iconic');
15
+ require('@dynamic-labs/wallet-connector-core');
16
+ require('../../context/ViewContext/ViewContext.cjs');
17
+ var checkCircle = require('../../shared/assets/check-circle.cjs');
18
+ require('@dynamic-labs/wallet-book');
19
+ require('../../utils/constants/colors.cjs');
20
+ require('../../utils/constants/values.cjs');
21
+ require('../../shared/utils/classes/storage/localStorage.cjs');
22
+ require('viem');
23
+ require('../../shared/consts/index.cjs');
24
+ require('../../context/CaptchaContext/CaptchaContext.cjs');
25
+ require('../../context/ErrorContext/ErrorContext.cjs');
26
+ require('@dynamic-labs/multi-wallet');
27
+ require('viem/chains');
28
+ require('../../context/AccessDeniedContext/AccessDeniedContext.cjs');
29
+ require('../../context/AccountExistsContext/AccountExistsContext.cjs');
30
+ require('../../config/ApiEndpoint.cjs');
31
+ require('../../context/EmailVerificationContext/EmailVerificationContext.cjs');
32
+ require('react-dom');
33
+ var useCountdown = require('../../utils/hooks/useCountdown/useCountdown.cjs');
34
+ require('../../context/ThemeContext/ThemeContext.cjs');
35
+ var useMutation = require('../../utils/hooks/useMutation/useMutation.cjs');
36
+ require('@dynamic-labs/types');
37
+ require('yup');
38
+ require('../../context/MockContext/MockContext.cjs');
39
+ require('../../utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.cjs');
40
+ require('../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
41
+ require('@dynamic-labs/rpc-providers');
42
+ require('../../context/UserWalletsContext/UserWalletsContext.cjs');
43
+ var classNames = require('../../utils/functions/classNames/classNames.cjs');
44
+ require('../Alert/Alert.cjs');
45
+ var Typography = require('../Typography/Typography.cjs');
46
+ var TextButton = require('../TextButton/TextButton.cjs');
47
+ require('../ShadowDOM/ShadowDOM.cjs');
48
+ var Icon = require('../Icon/Icon.cjs');
49
+ require('../IconButton/IconButton.cjs');
50
+ require('../InlineWidget/InlineWidget.cjs');
51
+ require('../MenuList/Dropdown/Dropdown.cjs');
52
+ require('../Transition/ZoomTransition/ZoomTransition.cjs');
53
+ require('../Transition/SlideInUpTransition/SlideInUpTransition.cjs');
54
+ require('../Transition/OpacityTransition/OpacityTransition.cjs');
55
+ require('../Popper/Popper/Popper.cjs');
56
+ require('../Popper/PopperContext/PopperContext.cjs');
57
+ require('react-focus-lock');
58
+ require('formik');
59
+ require('i18next');
60
+ require('../OverlayCard/OverlayCard.context.cjs');
61
+ require('../PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs');
62
+ require('../../context/PasskeyContext/PasskeyContext.cjs');
63
+ require('../../views/WalletList/WalletList.cjs');
64
+ require('qrcode');
65
+ require('@hcaptcha/react-hcaptcha');
66
+ require('../../context/LoadingContext/LoadingContext.cjs');
67
+ require('../../context/SocialRedirectContext/SocialRedirectContext.cjs');
68
+ require('../../context/WalletGroupContext/WalletGroupContext.cjs');
69
+ require('../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
70
+ require('../../context/FooterAnimationContext/index.cjs');
71
+ require('../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
72
+ require('../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
73
+ require('../UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.cjs');
74
+ require('@dynamic-labs/viem-utils');
75
+ require('../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
76
+
77
+ const RetrySendVerificationCodeSection = ({ retryHandler, secondsToRetry = 15, disabled = false, className }) => {
78
+ const { t } = reactI18next.useTranslation();
79
+ const [retried, setRetried] = React.useState(false);
80
+ const { remainingSeconds, startCountdown } = useCountdown.useCountdown({
81
+ callback: () => setRetried(false),
82
+ seconds: secondsToRetry,
83
+ });
84
+ const { isLoading, mutate: retry } = useMutation.useMutation(retryHandler, {
85
+ onSuccess: () => {
86
+ setRetried(true);
87
+ startCountdown();
88
+ },
89
+ });
90
+ const containerClassName = classNames.classNames('retry-send-verification-code-section', className);
91
+ if (retried) {
92
+ return (jsxRuntime.jsxs("div", { className: containerClassName, children: [jsxRuntime.jsx(Typography.Typography, { variant: 'body_small', color: 'secondary', copykey: 'dyn_email_verification.resend_code_in', children: t('dyn_email_verification.resend_code_in', { remainingSeconds }) }), jsxRuntime.jsxs("span", { className: 'retry-send-verification-code-section__confirmation', children: [jsxRuntime.jsx(Icon.Icon, { color: 'success-1', children: jsxRuntime.jsx(checkCircle.ReactComponent, {}) }), jsxRuntime.jsx(Typography.Typography, { variant: 'body_small', weight: 'medium', color: 'primary', copykey: 'dyn_email_verification.code_sent', children: t('dyn_email_verification.code_sent') })] })] }));
93
+ }
94
+ return (jsxRuntime.jsxs("div", { className: containerClassName, children: [jsxRuntime.jsx(Typography.Typography, { variant: 'body_small', weight: 'medium', color: 'secondary', copykey: 'dyn_email_verification.code_not_received', children: t('dyn_email_verification.code_not_received') }), jsxRuntime.jsx(TextButton.TextButton, { className: 'email-verification__text-button', disabled: isLoading || disabled, onClick: () => retry(), copykey: 'dyn_email_verification.resend_code', children: t('dyn_email_verification.resend_code') })] }));
95
+ };
96
+
97
+ exports.RetrySendVerificationCodeSection = RetrySendVerificationCodeSection;
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+ type RetrySendVerificationCodeSectionProps = {
3
+ retryHandler: () => Promise<void> | void;
4
+ secondsToRetry?: number;
5
+ disabled?: boolean;
6
+ className?: string;
7
+ };
8
+ export declare const RetrySendVerificationCodeSection: FC<RetrySendVerificationCodeSectionProps>;
9
+ export {};
@@ -0,0 +1,93 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useState } from 'react';
3
+ import { useTranslation } from 'react-i18next';
4
+ import '../../events/dynamicEvents.js';
5
+ import '../../../../_virtual/_tslib.js';
6
+ import '@dynamic-labs/utils';
7
+ import '../../context/DynamicContext/DynamicContext.js';
8
+ import '@dynamic-labs/sdk-api';
9
+ import '../../shared/logger.js';
10
+ import '@dynamic-labs/iconic';
11
+ import '@dynamic-labs/wallet-connector-core';
12
+ import '../../context/ViewContext/ViewContext.js';
13
+ import { ReactComponent as SvgCheckCircle } from '../../shared/assets/check-circle.js';
14
+ import '@dynamic-labs/wallet-book';
15
+ import '../../utils/constants/colors.js';
16
+ import '../../utils/constants/values.js';
17
+ import '../../shared/utils/classes/storage/localStorage.js';
18
+ import 'viem';
19
+ import '../../shared/consts/index.js';
20
+ import '../../context/CaptchaContext/CaptchaContext.js';
21
+ import '../../context/ErrorContext/ErrorContext.js';
22
+ import '@dynamic-labs/multi-wallet';
23
+ import 'viem/chains';
24
+ import '../../context/AccessDeniedContext/AccessDeniedContext.js';
25
+ import '../../context/AccountExistsContext/AccountExistsContext.js';
26
+ import '../../config/ApiEndpoint.js';
27
+ import '../../context/EmailVerificationContext/EmailVerificationContext.js';
28
+ import 'react-dom';
29
+ import { useCountdown } from '../../utils/hooks/useCountdown/useCountdown.js';
30
+ import '../../context/ThemeContext/ThemeContext.js';
31
+ import { useMutation } from '../../utils/hooks/useMutation/useMutation.js';
32
+ import '@dynamic-labs/types';
33
+ import 'yup';
34
+ import '../../context/MockContext/MockContext.js';
35
+ import '../../utils/hooks/useUserUpdateRequest/useUpdateUser/useUpdateUser.js';
36
+ import '../../context/UserFieldEditorContext/UserFieldEditorContext.js';
37
+ import '@dynamic-labs/rpc-providers';
38
+ import '../../context/UserWalletsContext/UserWalletsContext.js';
39
+ import { classNames } from '../../utils/functions/classNames/classNames.js';
40
+ import '../Alert/Alert.js';
41
+ import { Typography } from '../Typography/Typography.js';
42
+ import { TextButton } from '../TextButton/TextButton.js';
43
+ import '../ShadowDOM/ShadowDOM.js';
44
+ import { Icon } from '../Icon/Icon.js';
45
+ import '../IconButton/IconButton.js';
46
+ import '../InlineWidget/InlineWidget.js';
47
+ import '../MenuList/Dropdown/Dropdown.js';
48
+ import '../Transition/ZoomTransition/ZoomTransition.js';
49
+ import '../Transition/SlideInUpTransition/SlideInUpTransition.js';
50
+ import '../Transition/OpacityTransition/OpacityTransition.js';
51
+ import '../Popper/Popper/Popper.js';
52
+ import '../Popper/PopperContext/PopperContext.js';
53
+ import 'react-focus-lock';
54
+ import 'formik';
55
+ import 'i18next';
56
+ import '../OverlayCard/OverlayCard.context.js';
57
+ import '../PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.js';
58
+ import '../../context/PasskeyContext/PasskeyContext.js';
59
+ import '../../views/WalletList/WalletList.js';
60
+ import 'qrcode';
61
+ import '@hcaptcha/react-hcaptcha';
62
+ import '../../context/LoadingContext/LoadingContext.js';
63
+ import '../../context/SocialRedirectContext/SocialRedirectContext.js';
64
+ import '../../context/WalletGroupContext/WalletGroupContext.js';
65
+ import '../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
66
+ import '../../context/FooterAnimationContext/index.js';
67
+ import '../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
68
+ import '../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
69
+ import '../UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.js';
70
+ import '@dynamic-labs/viem-utils';
71
+ import '../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
72
+
73
+ const RetrySendVerificationCodeSection = ({ retryHandler, secondsToRetry = 15, disabled = false, className }) => {
74
+ const { t } = useTranslation();
75
+ const [retried, setRetried] = useState(false);
76
+ const { remainingSeconds, startCountdown } = useCountdown({
77
+ callback: () => setRetried(false),
78
+ seconds: secondsToRetry,
79
+ });
80
+ const { isLoading, mutate: retry } = useMutation(retryHandler, {
81
+ onSuccess: () => {
82
+ setRetried(true);
83
+ startCountdown();
84
+ },
85
+ });
86
+ const containerClassName = classNames('retry-send-verification-code-section', className);
87
+ if (retried) {
88
+ return (jsxs("div", { className: containerClassName, children: [jsx(Typography, { variant: 'body_small', color: 'secondary', copykey: 'dyn_email_verification.resend_code_in', children: t('dyn_email_verification.resend_code_in', { remainingSeconds }) }), jsxs("span", { className: 'retry-send-verification-code-section__confirmation', children: [jsx(Icon, { color: 'success-1', children: jsx(SvgCheckCircle, {}) }), jsx(Typography, { variant: 'body_small', weight: 'medium', color: 'primary', copykey: 'dyn_email_verification.code_sent', children: t('dyn_email_verification.code_sent') })] })] }));
89
+ }
90
+ return (jsxs("div", { className: containerClassName, children: [jsx(Typography, { variant: 'body_small', weight: 'medium', color: 'secondary', copykey: 'dyn_email_verification.code_not_received', children: t('dyn_email_verification.code_not_received') }), jsx(TextButton, { className: 'email-verification__text-button', disabled: isLoading || disabled, onClick: () => retry(), copykey: 'dyn_email_verification.resend_code', children: t('dyn_email_verification.resend_code') })] }));
91
+ };
92
+
93
+ export { RetrySendVerificationCodeSection };
@@ -0,0 +1 @@
1
+ export { RetrySendVerificationCodeSection } from './RetrySendVerificationCodeSection';
@@ -233,8 +233,10 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
233
233
  }),
234
234
  primaryWalletId,
235
235
  removeIsFullyConnected,
236
+ setIsVerificationInProgress,
236
237
  setPrimaryWalletId,
237
238
  setShowAuthFlow,
239
+ user,
238
240
  walletConnectorOptions,
239
241
  });
240
242
  // Ties all client callbacks to dynamic's events, such that
@@ -369,10 +371,8 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
369
371
  helpers.initExpirationTime(handleLogOut);
370
372
  }, [handleLogOut]);
371
373
  const { setCallback } = useCustomerCallbacks.useCustomerCallbacks({
372
- authMode,
373
374
  callbacks: {
374
375
  onAuthSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onAuthSuccess,
375
- onConnect: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onConnect,
376
376
  onEmbeddedWalletCreated: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onEmbeddedWalletCreated,
377
377
  onLinkSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onLinkSuccess,
378
378
  onUserProfileUpdate: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onUserProfileUpdate,
@@ -229,8 +229,10 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
229
229
  }),
230
230
  primaryWalletId,
231
231
  removeIsFullyConnected,
232
+ setIsVerificationInProgress,
232
233
  setPrimaryWalletId,
233
234
  setShowAuthFlow,
235
+ user,
234
236
  walletConnectorOptions,
235
237
  });
236
238
  // Ties all client callbacks to dynamic's events, such that
@@ -365,10 +367,8 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
365
367
  initExpirationTime(handleLogOut);
366
368
  }, [handleLogOut]);
367
369
  const { setCallback } = useCustomerCallbacks({
368
- authMode,
369
370
  callbacks: {
370
371
  onAuthSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onAuthSuccess,
371
- onConnect: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onConnect,
372
372
  onEmbeddedWalletCreated: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onEmbeddedWalletCreated,
373
373
  onLinkSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onLinkSuccess,
374
374
  onUserProfileUpdate: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onUserProfileUpdate,
@@ -86,6 +86,10 @@ const useTieCallbacksToEvents = ({ clientCallbacks, connectedWallets, user, }) =
86
86
  var _a;
87
87
  (_a = clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onAuthFlowClose) === null || _a === void 0 ? void 0 : _a.call(clientCallbacks);
88
88
  });
89
+ useDynamicEvents.useInternalDynamicEvents('walletConnected', (wallet) => {
90
+ var _a;
91
+ (_a = clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onConnect) === null || _a === void 0 ? void 0 : _a.call(clientCallbacks, { wallet, walletConnector: wallet.connector });
92
+ });
89
93
  useDynamicEvents.useInternalDynamicEvents('logout', () => {
90
94
  var _a;
91
95
  if (clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onDisconnect)
@@ -82,6 +82,10 @@ const useTieCallbacksToEvents = ({ clientCallbacks, connectedWallets, user, }) =
82
82
  var _a;
83
83
  (_a = clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onAuthFlowClose) === null || _a === void 0 ? void 0 : _a.call(clientCallbacks);
84
84
  });
85
+ useInternalDynamicEvents('walletConnected', (wallet) => {
86
+ var _a;
87
+ (_a = clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onConnect) === null || _a === void 0 ? void 0 : _a.call(clientCallbacks, { wallet, walletConnector: wallet.connector });
88
+ });
85
89
  useInternalDynamicEvents('logout', () => {
86
90
  var _a;
87
91
  if (clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onDisconnect)