@dynamic-labs/sdk-react-core 0.19.0-alpha.17 → 0.19.0-alpha.19
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/CHANGELOG.md +13 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +8 -8
- package/src/index.cjs +6 -0
- package/src/index.js +3 -0
- package/src/lib/components/Button/Button.cjs +2 -7
- package/src/lib/components/Button/Button.d.ts +0 -2
- package/src/lib/components/Button/Button.js +2 -7
- package/src/lib/components/CopyButton/CopyButton.cjs +1 -3
- package/src/lib/components/CopyButton/CopyButton.js +1 -3
- package/src/lib/components/DynamicFooter/DynamicFooter.cjs +10 -0
- package/src/lib/components/DynamicFooter/DynamicFooter.d.ts +2 -0
- package/src/lib/components/DynamicFooter/DynamicFooter.js +6 -0
- package/src/lib/components/DynamicFooter/index.d.ts +1 -0
- package/src/lib/components/LogoutButton/LogoutButton.cjs +1 -1
- package/src/lib/components/LogoutButton/LogoutButton.js +1 -1
- package/src/lib/components/ModalHeader/ModalHeader.cjs +3 -3
- package/src/lib/components/ModalHeader/ModalHeader.js +3 -3
- package/src/lib/components/ModalHeader/ModalHeader.types.d.ts +3 -0
- package/src/lib/components/OTPVerificationView/OTPVerificationView.cjs +7 -5
- package/src/lib/components/OTPVerificationView/OTPVerificationView.d.ts +0 -2
- package/src/lib/components/OTPVerificationView/OTPVerificationView.js +7 -5
- package/src/lib/components/PoweredByDynamic/PoweredByDynamic.cjs +1 -1
- package/src/lib/components/PoweredByDynamic/PoweredByDynamic.js +1 -1
- package/src/lib/components/SelectNetworkButton/SelectNetworkButton.cjs +1 -1
- package/src/lib/components/SelectNetworkButton/SelectNetworkButton.js +1 -1
- package/src/lib/components/SelectWalletChainLayout/SelectWalletChainLayout.cjs +1 -2
- package/src/lib/components/SelectWalletChainLayout/SelectWalletChainLayout.js +1 -2
- package/src/lib/components/SendBalanceForm/SendBalanceForm.cjs +1 -1
- package/src/lib/components/SendBalanceForm/SendBalanceForm.js +1 -1
- package/src/lib/components/Tooltip/Tooltip.cjs +1 -1
- package/src/lib/components/Tooltip/Tooltip.js +1 -1
- package/src/lib/components/TransactionConfirmationPageLayout/TransactionConfirmationPageLayout.cjs +2 -2
- package/src/lib/components/TransactionConfirmationPageLayout/TransactionConfirmationPageLayout.js +2 -2
- package/src/lib/components/TransactionStatusLayout/TransactionStatusLayout.cjs +1 -1
- package/src/lib/components/TransactionStatusLayout/TransactionStatusLayout.js +1 -1
- package/src/lib/components/Typography/Typography.cjs +0 -1
- package/src/lib/components/Typography/Typography.js +0 -1
- package/src/lib/components/Typography/Typography.types.d.ts +1 -1
- package/src/lib/components/UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.cjs +1 -1
- package/src/lib/components/UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.js +1 -1
- package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.cjs +1 -1
- package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.js +1 -1
- package/src/lib/components/UserProfileForm/UserProfileForm.cjs +1 -1
- package/src/lib/components/UserProfileForm/UserProfileForm.js +1 -1
- package/src/lib/context/DynamicContext/DynamicContext.cjs +9 -9
- package/src/lib/context/DynamicContext/DynamicContext.js +9 -9
- package/src/lib/context/DynamicContext/handleDisconnectWallet/handleDisconnectWallet.cjs +13 -0
- package/src/lib/context/DynamicContext/handleDisconnectWallet/handleDisconnectWallet.d.ts +1 -1
- package/src/lib/context/DynamicContext/handleDisconnectWallet/handleDisconnectWallet.js +13 -0
- package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +31 -7
- package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +31 -7
- package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.cjs +3 -1
- package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.js +3 -1
- package/src/lib/layout/DynamicAuthLayout/Header/header.cjs +7 -20
- package/src/lib/layout/DynamicAuthLayout/Header/header.js +7 -20
- package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpHeader/HelpHeader.cjs +6 -4
- package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpHeader/HelpHeader.js +6 -4
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletMoreInfoContent/WalletMoreInfoContent.cjs +1 -2
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletMoreInfoContent/WalletMoreInfoContent.js +1 -2
- package/src/lib/layouts/BridgeNextWalletToConnectLayout/BridgeNextWalletToConnectLayout.cjs +1 -1
- package/src/lib/layouts/BridgeNextWalletToConnectLayout/BridgeNextWalletToConnectLayout.js +1 -1
- package/src/lib/layouts/BridgeWelcomeLayout/BridgeWelcomeLayout.cjs +1 -1
- package/src/lib/layouts/BridgeWelcomeLayout/BridgeWelcomeLayout.js +1 -1
- package/src/lib/layouts/ConnectedWalletsListLayout/ConnectedWalletsListLayout.cjs +1 -1
- package/src/lib/layouts/ConnectedWalletsListLayout/ConnectedWalletsListLayout.js +1 -1
- package/src/lib/locale/en/translation.cjs +13 -1
- package/src/lib/locale/en/translation.js +13 -1
- package/src/lib/main.global.cjs +1 -1
- package/src/lib/main.global.js +1 -1
- package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.cjs +2 -2
- package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.js +2 -2
- package/src/lib/shared/assets/arrow-left.cjs +53 -0
- package/src/lib/shared/assets/arrow-left.js +29 -0
- package/src/lib/shared/assets/arrow-right-circle.cjs +53 -0
- package/src/lib/shared/assets/arrow-right-circle.js +29 -0
- package/src/lib/shared/assets/check-connection.cjs +53 -0
- package/src/lib/shared/assets/check-connection.js +29 -0
- package/src/lib/shared/assets/index.d.ts +3 -0
- package/src/lib/styles/index.shadow.cjs +1 -1
- package/src/lib/styles/index.shadow.js +1 -1
- package/src/lib/utils/constants/index.d.ts +1 -1
- package/src/lib/utils/constants/typography.d.ts +0 -1
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +22 -5
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.d.ts +2 -0
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +22 -5
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +43 -25
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +3 -2
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +43 -25
- package/src/lib/utils/hooks/useDynamicLayoutData/useDynamicLayoutData.cjs +24 -0
- package/src/lib/utils/hooks/useDynamicLayoutData/useDynamicLayoutData.js +24 -0
- package/src/lib/utils/hooks/useIsLoggedIn/useIsLoggedIn.cjs +2 -4
- package/src/lib/utils/hooks/useIsLoggedIn/useIsLoggedIn.js +2 -4
- package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.cjs +2 -2
- package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.js +2 -2
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +1 -1
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +1 -1
- package/src/lib/views/CaptchaVerifyUser/CaptchaVerifyUser.cjs +1 -1
- package/src/lib/views/CaptchaVerifyUser/CaptchaVerifyUser.js +1 -1
- package/src/lib/views/CollectUserDataView/CollectUserDataView.cjs +12 -5
- package/src/lib/views/CollectUserDataView/CollectUserDataView.js +12 -5
- package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.cjs +1 -1
- package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.js +1 -1
- package/src/lib/views/CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.cjs +3 -1
- package/src/lib/views/CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.js +3 -1
- package/src/lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.cjs +1 -1
- package/src/lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.js +1 -1
- package/src/lib/views/EmailUpdate/EmailUpdate.cjs +6 -7
- package/src/lib/views/EmailUpdate/EmailUpdate.js +7 -8
- package/src/lib/views/EmailVerification/EmailVerification.cjs +12 -18
- package/src/lib/views/EmailVerification/EmailVerification.js +13 -19
- package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.cjs +2 -3
- package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.js +2 -3
- package/src/lib/views/LoginView/LoginView.cjs +3 -5
- package/src/lib/views/LoginView/LoginView.js +4 -6
- package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.cjs +2 -2
- package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.js +2 -2
- package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.cjs +1 -1
- package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.js +1 -1
- package/src/lib/views/NetworkNotSupported/NetworkNotSupported.cjs +4 -1
- package/src/lib/views/NetworkNotSupported/NetworkNotSupported.js +4 -1
- package/src/lib/views/NoAccess/NoAccess.cjs +1 -1
- package/src/lib/views/NoAccess/NoAccess.js +1 -1
- package/src/lib/views/PendingConnectView/PendingConnectView.cjs +2 -3
- package/src/lib/views/PendingConnectView/PendingConnectView.js +2 -3
- package/src/lib/views/PendingSignatureView/PendingSignatureView.cjs +5 -6
- package/src/lib/views/PendingSignatureView/PendingSignatureView.js +5 -6
- package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.cjs +5 -2
- package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.d.ts +2 -1
- package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.js +5 -2
- package/src/lib/views/QrCodeView/QrCodeView.cjs +22 -23
- package/src/lib/views/QrCodeView/QrCodeView.js +23 -24
- package/src/lib/views/SocialRedirectView/SocialRedirectView.cjs +1 -1
- package/src/lib/views/SocialRedirectView/SocialRedirectView.js +1 -1
- package/src/lib/views/SocialWrongAccountView/SocialWrongAccountView.cjs +1 -1
- package/src/lib/views/SocialWrongAccountView/SocialWrongAccountView.js +1 -1
- package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.cjs +1 -1
- package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.js +1 -1
- package/src/lib/views/UserFieldEditorView/UserFieldEditorView.cjs +1 -1
- package/src/lib/views/UserFieldEditorView/UserFieldEditorView.js +1 -1
- package/src/lib/views/WalletCannotBeTransferredView/WalletCannotBeTransferredView.cjs +1 -1
- package/src/lib/views/WalletCannotBeTransferredView/WalletCannotBeTransferredView.js +1 -1
- package/src/lib/views/WalletList/WalletList.cjs +7 -3
- package/src/lib/views/WalletList/WalletList.js +8 -4
- package/src/lib/views/WalletLockedView/WalletLockedView.cjs +1 -1
- package/src/lib/views/WalletLockedView/WalletLockedView.js +1 -1
- package/src/lib/views/WalletSignSpinnerView/WalletSignSpinnerView.cjs +2 -2
- package/src/lib/views/WalletSignSpinnerView/WalletSignSpinnerView.js +2 -2
- package/src/lib/views/WalletUsedView/WalletUsedView.cjs +1 -1
- package/src/lib/views/WalletUsedView/WalletUsedView.js +1 -1
- package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/WalletsView.cjs +1 -1
- package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/WalletsView.js +1 -1
- package/src/lib/widgets/DynamicEmbeddedWidget/DynamicEmbeddedAuthFlow/DynamicEmbeddedAuthFlow.cjs +1 -1
- package/src/lib/widgets/DynamicEmbeddedWidget/DynamicEmbeddedAuthFlow/DynamicEmbeddedAuthFlow.js +1 -1
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.cjs +2 -2
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.js +2 -2
- package/src/lib/widgets/DynamicWidget/components/SingleWalletButtons/SingleWalletButtons.cjs +2 -2
- package/src/lib/widgets/DynamicWidget/components/SingleWalletButtons/SingleWalletButtons.js +2 -2
- package/src/lib/widgets/DynamicWidget/prompts/DefaultPromptModal/DefaultPromptModal.cjs +1 -1
- package/src/lib/widgets/DynamicWidget/prompts/DefaultPromptModal/DefaultPromptModal.js +1 -1
- package/src/lib/widgets/DynamicWidget/prompts/DetectedNewWalletModal/DetectedNewWalletModal.cjs +1 -1
- package/src/lib/widgets/DynamicWidget/prompts/DetectedNewWalletModal/DetectedNewWalletModal.js +1 -1
- package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchOrUseActiveAccountView/SwitchOrUseActiveAccountView.cjs +1 -1
- package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchOrUseActiveAccountView/SwitchOrUseActiveAccountView.js +1 -1
- package/src/lib/widgets/DynamicWidget/prompts/PendingSignModal/DefaultPendingSignModalContent/DefaultPendingSignModalContent.cjs +1 -1
- package/src/lib/widgets/DynamicWidget/prompts/PendingSignModal/DefaultPendingSignModalContent/DefaultPendingSignModalContent.js +1 -1
- package/src/lib/widgets/DynamicWidget/prompts/UnlinkWalletPopUp/UnlinkWalletPopUp.cjs +2 -2
- package/src/lib/widgets/DynamicWidget/prompts/UnlinkWalletPopUp/UnlinkWalletPopUp.js +2 -2
- package/src/lib/widgets/DynamicWidget/views/WalletsView/WalletsView.cjs +2 -2
- package/src/lib/widgets/DynamicWidget/views/WalletsView/WalletsView.js +2 -2
|
@@ -23,9 +23,35 @@ var api = require('../../../data/api.cjs');
|
|
|
23
23
|
require('@dynamic-labs/multi-wallet');
|
|
24
24
|
var shouldManuallyReconnectOnRefresh = require('../../functions/shouldManuallyReconnectOnRefresh/shouldManuallyReconnectOnRefresh.cjs');
|
|
25
25
|
|
|
26
|
-
const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, }) => {
|
|
26
|
+
const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, isBridgeFlow, }) => {
|
|
27
27
|
const [connectedWalletsInfo, setConnectedWalletsInfo, removeConnectedWalletsInfo,] = useLocalStorage.useLocalStorage(localStorage.CONNECTED_WALLETS_INFO, []);
|
|
28
28
|
const [connectedWallets, setConnectedWallets] = React.useState([]);
|
|
29
|
+
const unlinkConnectedWallet = React.useCallback((walletId) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
30
|
+
const walletToDisconnect = connectedWallets.find((wallet) => wallet.id === walletId);
|
|
31
|
+
yield (walletToDisconnect === null || walletToDisconnect === void 0 ? void 0 : walletToDisconnect.connector.endSession());
|
|
32
|
+
const updatedConnectedWalletsInfo = connectedWalletsInfo.filter((wallet) => wallet.id !== walletId);
|
|
33
|
+
setConnectedWalletsInfo(updatedConnectedWalletsInfo);
|
|
34
|
+
onUnlink(updatedConnectedWalletsInfo, walletToDisconnect);
|
|
35
|
+
if (walletId !== primaryWalletId) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const hasConnectedWallet = updatedConnectedWalletsInfo.length > 0;
|
|
39
|
+
if (isBridgeFlow || !hasConnectedWallet) {
|
|
40
|
+
clearPrimaryWalletId();
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
setPrimaryWalletId(updatedConnectedWalletsInfo[0].id);
|
|
44
|
+
}
|
|
45
|
+
}), [
|
|
46
|
+
clearPrimaryWalletId,
|
|
47
|
+
connectedWallets,
|
|
48
|
+
connectedWalletsInfo,
|
|
49
|
+
isBridgeFlow,
|
|
50
|
+
onUnlink,
|
|
51
|
+
primaryWalletId,
|
|
52
|
+
setConnectedWalletsInfo,
|
|
53
|
+
setPrimaryWalletId,
|
|
54
|
+
]);
|
|
29
55
|
// The function to update and define the connectedWallets list.
|
|
30
56
|
// It uses walletConnector to get the current wallet address and network
|
|
31
57
|
// The address and network in the runtime are updated by the event listeners
|
|
@@ -36,14 +62,19 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
36
62
|
if (!walletConnectors.length) {
|
|
37
63
|
return;
|
|
38
64
|
}
|
|
39
|
-
const
|
|
65
|
+
const updatedConnectedWallets = (yield Promise.all(connectedWalletsInfo.map((storedConnectedWalletInfo) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
40
66
|
const walletConnector = walletConnectorCore.getWalletConnectorByKey(walletConnectors, storedConnectedWalletInfo.walletConnectorKey);
|
|
41
67
|
if (!walletConnector) {
|
|
42
68
|
walletConnectorCore.logger.error('Could not find walletConnector: ' +
|
|
43
69
|
storedConnectedWalletInfo.walletConnectorKey);
|
|
44
|
-
|
|
70
|
+
yield unlinkConnectedWallet(storedConnectedWalletInfo.id);
|
|
71
|
+
return null;
|
|
45
72
|
}
|
|
46
73
|
const [walletAddress] = yield walletConnector.getConnectedAccounts();
|
|
74
|
+
if (!walletAddress) {
|
|
75
|
+
yield unlinkConnectedWallet(storedConnectedWalletInfo.id);
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
47
78
|
const walletNetwork = yield walletConnector.getNetwork();
|
|
48
79
|
const walletChain = walletConnector.connectedChain;
|
|
49
80
|
const walletObject = {
|
|
@@ -54,14 +85,15 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
54
85
|
id: storedConnectedWalletInfo.id,
|
|
55
86
|
network: walletNetwork,
|
|
56
87
|
};
|
|
57
|
-
return
|
|
88
|
+
return walletObject;
|
|
58
89
|
})))).filter((wallet) => Boolean(wallet));
|
|
59
|
-
setConnectedWallets(
|
|
60
|
-
}), [connectedWalletsInfo, wallets]);
|
|
90
|
+
setConnectedWallets(updatedConnectedWallets);
|
|
91
|
+
}), [connectedWalletsInfo, unlinkConnectedWallet, wallets]);
|
|
61
92
|
// Generate the connectedWallets list when connectedWalletsInfo (localStorage) or memoized wallet connector updates
|
|
62
93
|
React.useEffect(() => {
|
|
63
94
|
updateConnectedWalletsList();
|
|
64
|
-
|
|
95
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
96
|
+
}, [connectedWalletsInfo, wallets]);
|
|
65
97
|
const getNextIdAvailable = React.useCallback((currentWallets) => {
|
|
66
98
|
const existingIds = currentWallets.map(({ id }) => id);
|
|
67
99
|
const sortedIds = existingIds
|
|
@@ -85,15 +117,14 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
85
117
|
const connectedWallet = connectedWallets[0] || null;
|
|
86
118
|
// Keeps connected wallet data inside localStorage
|
|
87
119
|
const applyConnectedWalletToStore = ({ walletId, walletConnectorKey, walletChain, provider, }) => {
|
|
88
|
-
const
|
|
89
|
-
|
|
120
|
+
const updatedConnectedWalletsInfo = [...connectedWalletsInfo];
|
|
121
|
+
updatedConnectedWalletsInfo.push({
|
|
90
122
|
id: walletId,
|
|
91
123
|
provider,
|
|
92
124
|
walletChain,
|
|
93
125
|
walletConnectorKey,
|
|
94
126
|
});
|
|
95
|
-
setConnectedWalletsInfo(
|
|
96
|
-
return Promise.resolve();
|
|
127
|
+
setConnectedWalletsInfo(updatedConnectedWalletsInfo);
|
|
97
128
|
};
|
|
98
129
|
// Updates connected wallet (network and address) and verifies connected wallet connection
|
|
99
130
|
const refreshConnectedWallet = (walletId, walletConnector) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -171,20 +202,7 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
171
202
|
});
|
|
172
203
|
}
|
|
173
204
|
}
|
|
174
|
-
return
|
|
175
|
-
});
|
|
176
|
-
const unlinkConnectedWallet = (walletId) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
177
|
-
const connectedWalletToUnlink = connectedWallets.find((wallet) => wallet.id === walletId);
|
|
178
|
-
if (!connectedWalletToUnlink) {
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
yield connectedWalletToUnlink.connector.endSession();
|
|
182
|
-
const filteredWallets = connectedWalletsInfo.filter((wallet) => wallet.id !== walletId);
|
|
183
|
-
if (walletId === primaryWalletId) {
|
|
184
|
-
clearPrimaryWalletId();
|
|
185
|
-
}
|
|
186
|
-
setConnectedWalletsInfo(filteredWallets);
|
|
187
|
-
onUnlink(connectedWalletToUnlink, filteredWallets);
|
|
205
|
+
return publicWalletAddress;
|
|
188
206
|
});
|
|
189
207
|
const getConnectedWalletById = React.useCallback((walletId) => connectedWallets.find((wallet) => wallet.id === walletId), [connectedWallets]);
|
|
190
208
|
return {
|
|
@@ -15,9 +15,10 @@ type Props = {
|
|
|
15
15
|
primaryWalletId: string | undefined;
|
|
16
16
|
setPrimaryWalletId: (walletId: string) => void;
|
|
17
17
|
wallets: WalletOption[];
|
|
18
|
-
onUnlink: (
|
|
18
|
+
onUnlink: (connectedWalletsInfo: ConnectedWalletConnectorType[], wallet?: Wallet) => void;
|
|
19
19
|
onBeforeConnectSuccessConfirmation: OnBeforeConnectSuccessConfirmation | undefined;
|
|
20
20
|
setShowAuthFlow: Dispatch<SetStateAction<boolean>>;
|
|
21
|
+
isBridgeFlow: boolean;
|
|
21
22
|
};
|
|
22
23
|
type UseConnectWalletValue = {
|
|
23
24
|
connectWallet: (walletConnector: WalletConnector, fetchPublicAddressOpts?: FetchPublicAddressOpts, shouldCallCallback?: boolean) => Promise<string | undefined>;
|
|
@@ -29,5 +30,5 @@ type UseConnectWalletValue = {
|
|
|
29
30
|
removeConnectedWalletsInfo: () => void;
|
|
30
31
|
unlinkConnectedWallet: (walletId: string) => Promise<void>;
|
|
31
32
|
};
|
|
32
|
-
export declare const useConnectWallet: ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, }: Props) => UseConnectWalletValue;
|
|
33
|
+
export declare const useConnectWallet: ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, isBridgeFlow, }: Props) => UseConnectWalletValue;
|
|
33
34
|
export {};
|
|
@@ -19,9 +19,35 @@ import { createVisit } from '../../../data/api.js';
|
|
|
19
19
|
import '@dynamic-labs/multi-wallet';
|
|
20
20
|
import { shouldManuallyReconnectOnRefresh } from '../../functions/shouldManuallyReconnectOnRefresh/shouldManuallyReconnectOnRefresh.js';
|
|
21
21
|
|
|
22
|
-
const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, }) => {
|
|
22
|
+
const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, isBridgeFlow, }) => {
|
|
23
23
|
const [connectedWalletsInfo, setConnectedWalletsInfo, removeConnectedWalletsInfo,] = useLocalStorage(CONNECTED_WALLETS_INFO, []);
|
|
24
24
|
const [connectedWallets, setConnectedWallets] = useState([]);
|
|
25
|
+
const unlinkConnectedWallet = useCallback((walletId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
|
+
const walletToDisconnect = connectedWallets.find((wallet) => wallet.id === walletId);
|
|
27
|
+
yield (walletToDisconnect === null || walletToDisconnect === void 0 ? void 0 : walletToDisconnect.connector.endSession());
|
|
28
|
+
const updatedConnectedWalletsInfo = connectedWalletsInfo.filter((wallet) => wallet.id !== walletId);
|
|
29
|
+
setConnectedWalletsInfo(updatedConnectedWalletsInfo);
|
|
30
|
+
onUnlink(updatedConnectedWalletsInfo, walletToDisconnect);
|
|
31
|
+
if (walletId !== primaryWalletId) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const hasConnectedWallet = updatedConnectedWalletsInfo.length > 0;
|
|
35
|
+
if (isBridgeFlow || !hasConnectedWallet) {
|
|
36
|
+
clearPrimaryWalletId();
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
setPrimaryWalletId(updatedConnectedWalletsInfo[0].id);
|
|
40
|
+
}
|
|
41
|
+
}), [
|
|
42
|
+
clearPrimaryWalletId,
|
|
43
|
+
connectedWallets,
|
|
44
|
+
connectedWalletsInfo,
|
|
45
|
+
isBridgeFlow,
|
|
46
|
+
onUnlink,
|
|
47
|
+
primaryWalletId,
|
|
48
|
+
setConnectedWalletsInfo,
|
|
49
|
+
setPrimaryWalletId,
|
|
50
|
+
]);
|
|
25
51
|
// The function to update and define the connectedWallets list.
|
|
26
52
|
// It uses walletConnector to get the current wallet address and network
|
|
27
53
|
// The address and network in the runtime are updated by the event listeners
|
|
@@ -32,14 +58,19 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
32
58
|
if (!walletConnectors.length) {
|
|
33
59
|
return;
|
|
34
60
|
}
|
|
35
|
-
const
|
|
61
|
+
const updatedConnectedWallets = (yield Promise.all(connectedWalletsInfo.map((storedConnectedWalletInfo) => __awaiter(void 0, void 0, void 0, function* () {
|
|
36
62
|
const walletConnector = getWalletConnectorByKey(walletConnectors, storedConnectedWalletInfo.walletConnectorKey);
|
|
37
63
|
if (!walletConnector) {
|
|
38
64
|
logger.error('Could not find walletConnector: ' +
|
|
39
65
|
storedConnectedWalletInfo.walletConnectorKey);
|
|
40
|
-
|
|
66
|
+
yield unlinkConnectedWallet(storedConnectedWalletInfo.id);
|
|
67
|
+
return null;
|
|
41
68
|
}
|
|
42
69
|
const [walletAddress] = yield walletConnector.getConnectedAccounts();
|
|
70
|
+
if (!walletAddress) {
|
|
71
|
+
yield unlinkConnectedWallet(storedConnectedWalletInfo.id);
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
43
74
|
const walletNetwork = yield walletConnector.getNetwork();
|
|
44
75
|
const walletChain = walletConnector.connectedChain;
|
|
45
76
|
const walletObject = {
|
|
@@ -50,14 +81,15 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
50
81
|
id: storedConnectedWalletInfo.id,
|
|
51
82
|
network: walletNetwork,
|
|
52
83
|
};
|
|
53
|
-
return
|
|
84
|
+
return walletObject;
|
|
54
85
|
})))).filter((wallet) => Boolean(wallet));
|
|
55
|
-
setConnectedWallets(
|
|
56
|
-
}), [connectedWalletsInfo, wallets]);
|
|
86
|
+
setConnectedWallets(updatedConnectedWallets);
|
|
87
|
+
}), [connectedWalletsInfo, unlinkConnectedWallet, wallets]);
|
|
57
88
|
// Generate the connectedWallets list when connectedWalletsInfo (localStorage) or memoized wallet connector updates
|
|
58
89
|
useEffect(() => {
|
|
59
90
|
updateConnectedWalletsList();
|
|
60
|
-
|
|
91
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
92
|
+
}, [connectedWalletsInfo, wallets]);
|
|
61
93
|
const getNextIdAvailable = useCallback((currentWallets) => {
|
|
62
94
|
const existingIds = currentWallets.map(({ id }) => id);
|
|
63
95
|
const sortedIds = existingIds
|
|
@@ -81,15 +113,14 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
81
113
|
const connectedWallet = connectedWallets[0] || null;
|
|
82
114
|
// Keeps connected wallet data inside localStorage
|
|
83
115
|
const applyConnectedWalletToStore = ({ walletId, walletConnectorKey, walletChain, provider, }) => {
|
|
84
|
-
const
|
|
85
|
-
|
|
116
|
+
const updatedConnectedWalletsInfo = [...connectedWalletsInfo];
|
|
117
|
+
updatedConnectedWalletsInfo.push({
|
|
86
118
|
id: walletId,
|
|
87
119
|
provider,
|
|
88
120
|
walletChain,
|
|
89
121
|
walletConnectorKey,
|
|
90
122
|
});
|
|
91
|
-
setConnectedWalletsInfo(
|
|
92
|
-
return Promise.resolve();
|
|
123
|
+
setConnectedWalletsInfo(updatedConnectedWalletsInfo);
|
|
93
124
|
};
|
|
94
125
|
// Updates connected wallet (network and address) and verifies connected wallet connection
|
|
95
126
|
const refreshConnectedWallet = (walletId, walletConnector) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -167,20 +198,7 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
167
198
|
});
|
|
168
199
|
}
|
|
169
200
|
}
|
|
170
|
-
return
|
|
171
|
-
});
|
|
172
|
-
const unlinkConnectedWallet = (walletId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
173
|
-
const connectedWalletToUnlink = connectedWallets.find((wallet) => wallet.id === walletId);
|
|
174
|
-
if (!connectedWalletToUnlink) {
|
|
175
|
-
return;
|
|
176
|
-
}
|
|
177
|
-
yield connectedWalletToUnlink.connector.endSession();
|
|
178
|
-
const filteredWallets = connectedWalletsInfo.filter((wallet) => wallet.id !== walletId);
|
|
179
|
-
if (walletId === primaryWalletId) {
|
|
180
|
-
clearPrimaryWalletId();
|
|
181
|
-
}
|
|
182
|
-
setConnectedWalletsInfo(filteredWallets);
|
|
183
|
-
onUnlink(connectedWalletToUnlink, filteredWallets);
|
|
201
|
+
return publicWalletAddress;
|
|
184
202
|
});
|
|
185
203
|
const getConnectedWalletById = useCallback((walletId) => connectedWallets.find((wallet) => wallet.id === walletId), [connectedWallets]);
|
|
186
204
|
return {
|
|
@@ -52,6 +52,9 @@ const useDynamicLayoutData = ({ view, authMode, }) => {
|
|
|
52
52
|
'login-with-email-or-wallet-full-wallet-list': {
|
|
53
53
|
heading: t('dyn_login.title.all_wallet_list'),
|
|
54
54
|
},
|
|
55
|
+
'login-with-email-verification': {
|
|
56
|
+
heading: 'Confirm verification code',
|
|
57
|
+
},
|
|
55
58
|
'login-with-wallet-only': {
|
|
56
59
|
heading: t('dyn_login.title.wallet_only'),
|
|
57
60
|
},
|
|
@@ -60,13 +63,34 @@ const useDynamicLayoutData = ({ view, authMode, }) => {
|
|
|
60
63
|
? t('dyn_wallet_list.title.connect')
|
|
61
64
|
: t('dyn_wallet_list.title.link'),
|
|
62
65
|
},
|
|
66
|
+
'network-not-supported': {
|
|
67
|
+
heading: 'Update Network',
|
|
68
|
+
},
|
|
69
|
+
'pending-connect': {
|
|
70
|
+
heading: t('dyn_login.connect_wallet.title'),
|
|
71
|
+
},
|
|
72
|
+
'pending-signature': {
|
|
73
|
+
heading: t('dyn_login.sign_wallet.title'),
|
|
74
|
+
},
|
|
75
|
+
'qr-code': {
|
|
76
|
+
heading: t('dyn_login.qr_code.title'),
|
|
77
|
+
},
|
|
78
|
+
'verify-email': {
|
|
79
|
+
heading: 'Confirm verification code',
|
|
80
|
+
},
|
|
63
81
|
'wallet-connect-mobile-wallets-list': {
|
|
64
82
|
heading: (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(iconic.WalletConnectIcon, { style: { height: '1.5rem', width: '1.5rem' } }), ' ', t('dyn_wallet_conect.mobile.wallet_list.title')] })),
|
|
65
83
|
},
|
|
84
|
+
'wallet-group': {
|
|
85
|
+
heading: t('dyn_login.wallet_group.title'),
|
|
86
|
+
},
|
|
66
87
|
'wallet-list': {
|
|
67
88
|
heading: t('dyn_wallet_list.title.select'),
|
|
68
89
|
},
|
|
69
90
|
'wallet-sign': { heading: t('dyn_wallet_transfer.sign.title') },
|
|
91
|
+
'wallet-used': {
|
|
92
|
+
heading: 'Transfer this wallet?',
|
|
93
|
+
},
|
|
70
94
|
};
|
|
71
95
|
const helpHeaderData = helpHeaderMap[view];
|
|
72
96
|
const headerData = headerMap[view];
|
|
@@ -48,6 +48,9 @@ const useDynamicLayoutData = ({ view, authMode, }) => {
|
|
|
48
48
|
'login-with-email-or-wallet-full-wallet-list': {
|
|
49
49
|
heading: t('dyn_login.title.all_wallet_list'),
|
|
50
50
|
},
|
|
51
|
+
'login-with-email-verification': {
|
|
52
|
+
heading: 'Confirm verification code',
|
|
53
|
+
},
|
|
51
54
|
'login-with-wallet-only': {
|
|
52
55
|
heading: t('dyn_login.title.wallet_only'),
|
|
53
56
|
},
|
|
@@ -56,13 +59,34 @@ const useDynamicLayoutData = ({ view, authMode, }) => {
|
|
|
56
59
|
? t('dyn_wallet_list.title.connect')
|
|
57
60
|
: t('dyn_wallet_list.title.link'),
|
|
58
61
|
},
|
|
62
|
+
'network-not-supported': {
|
|
63
|
+
heading: 'Update Network',
|
|
64
|
+
},
|
|
65
|
+
'pending-connect': {
|
|
66
|
+
heading: t('dyn_login.connect_wallet.title'),
|
|
67
|
+
},
|
|
68
|
+
'pending-signature': {
|
|
69
|
+
heading: t('dyn_login.sign_wallet.title'),
|
|
70
|
+
},
|
|
71
|
+
'qr-code': {
|
|
72
|
+
heading: t('dyn_login.qr_code.title'),
|
|
73
|
+
},
|
|
74
|
+
'verify-email': {
|
|
75
|
+
heading: 'Confirm verification code',
|
|
76
|
+
},
|
|
59
77
|
'wallet-connect-mobile-wallets-list': {
|
|
60
78
|
heading: (jsxs(Fragment, { children: [jsx(WalletConnectIcon, { style: { height: '1.5rem', width: '1.5rem' } }), ' ', t('dyn_wallet_conect.mobile.wallet_list.title')] })),
|
|
61
79
|
},
|
|
80
|
+
'wallet-group': {
|
|
81
|
+
heading: t('dyn_login.wallet_group.title'),
|
|
82
|
+
},
|
|
62
83
|
'wallet-list': {
|
|
63
84
|
heading: t('dyn_wallet_list.title.select'),
|
|
64
85
|
},
|
|
65
86
|
'wallet-sign': { heading: t('dyn_wallet_transfer.sign.title') },
|
|
87
|
+
'wallet-used': {
|
|
88
|
+
heading: 'Transfer this wallet?',
|
|
89
|
+
},
|
|
66
90
|
};
|
|
67
91
|
const helpHeaderData = helpHeaderMap[view];
|
|
68
92
|
const headerData = headerMap[view];
|
|
@@ -5,10 +5,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var useInternalDynamicContext = require('../../../context/DynamicContext/useInternalDynamicContext.cjs');
|
|
6
6
|
|
|
7
7
|
const useIsLoggedIn = () => {
|
|
8
|
-
const {
|
|
9
|
-
|
|
10
|
-
return Boolean(user);
|
|
11
|
-
return Boolean(primaryWallet);
|
|
8
|
+
const { user, primaryWallet } = useInternalDynamicContext.useInternalDynamicContext();
|
|
9
|
+
return Boolean(user || primaryWallet);
|
|
12
10
|
};
|
|
13
11
|
|
|
14
12
|
exports.useIsLoggedIn = useIsLoggedIn;
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { useInternalDynamicContext } from '../../../context/DynamicContext/useInternalDynamicContext.js';
|
|
2
2
|
|
|
3
3
|
const useIsLoggedIn = () => {
|
|
4
|
-
const {
|
|
5
|
-
|
|
6
|
-
return Boolean(user);
|
|
7
|
-
return Boolean(primaryWallet);
|
|
4
|
+
const { user, primaryWallet } = useInternalDynamicContext();
|
|
5
|
+
return Boolean(user || primaryWallet);
|
|
8
6
|
};
|
|
9
7
|
|
|
10
8
|
export { useIsLoggedIn };
|
|
@@ -25,10 +25,10 @@ const usePrimaryWalletId = (internalEvents) => {
|
|
|
25
25
|
const setPrimaryWalletId = React.useCallback((walletId) => {
|
|
26
26
|
setPrimaryWalletIdState(walletId);
|
|
27
27
|
}, [setPrimaryWalletIdState]);
|
|
28
|
-
const clearPrimaryWalletId = () => {
|
|
28
|
+
const clearPrimaryWalletId = React.useCallback(() => {
|
|
29
29
|
clearPrimaryWalletIdStorage();
|
|
30
30
|
internalEvents.emit('clearPrimaryWallet');
|
|
31
|
-
};
|
|
31
|
+
}, [clearPrimaryWalletIdStorage, internalEvents]);
|
|
32
32
|
return {
|
|
33
33
|
clearPrimaryWalletId,
|
|
34
34
|
primaryWalletId,
|
|
@@ -21,10 +21,10 @@ const usePrimaryWalletId = (internalEvents) => {
|
|
|
21
21
|
const setPrimaryWalletId = useCallback((walletId) => {
|
|
22
22
|
setPrimaryWalletIdState(walletId);
|
|
23
23
|
}, [setPrimaryWalletIdState]);
|
|
24
|
-
const clearPrimaryWalletId = () => {
|
|
24
|
+
const clearPrimaryWalletId = useCallback(() => {
|
|
25
25
|
clearPrimaryWalletIdStorage();
|
|
26
26
|
internalEvents.emit('clearPrimaryWallet');
|
|
27
|
-
};
|
|
27
|
+
}, [clearPrimaryWalletIdStorage, internalEvents]);
|
|
28
28
|
return {
|
|
29
29
|
clearPrimaryWalletId,
|
|
30
30
|
primaryWalletId,
|
|
@@ -147,7 +147,7 @@ const useSocialAuth = ({ sessionTimeout, authMode, onSettled, onError, }) => {
|
|
|
147
147
|
try {
|
|
148
148
|
// this function will check turnkey wallet enabled and create wallet if needed
|
|
149
149
|
// if not enabled, it will throw an error.
|
|
150
|
-
createEmbeddedWallet();
|
|
150
|
+
yield createEmbeddedWallet();
|
|
151
151
|
onSettled === null || onSettled === void 0 ? void 0 : onSettled();
|
|
152
152
|
}
|
|
153
153
|
catch (e) {
|
|
@@ -143,7 +143,7 @@ const useSocialAuth = ({ sessionTimeout, authMode, onSettled, onError, }) => {
|
|
|
143
143
|
try {
|
|
144
144
|
// this function will check turnkey wallet enabled and create wallet if needed
|
|
145
145
|
// if not enabled, it will throw an error.
|
|
146
|
-
createEmbeddedWallet();
|
|
146
|
+
yield createEmbeddedWallet();
|
|
147
147
|
onSettled === null || onSettled === void 0 ? void 0 : onSettled();
|
|
148
148
|
}
|
|
149
149
|
catch (e) {
|
|
@@ -36,6 +36,7 @@ require('../../context/FooterAnimationContext/index.cjs');
|
|
|
36
36
|
require('../../context/MockContext/MockContext.cjs');
|
|
37
37
|
require('../../context/QrCodeContext/QrCodeContext.cjs');
|
|
38
38
|
require('react-i18next');
|
|
39
|
+
var PoweredByDynamic = require('../../components/PoweredByDynamic/PoweredByDynamic.cjs');
|
|
39
40
|
require('../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
40
41
|
require('../../context/ErrorContext/ErrorContext.cjs');
|
|
41
42
|
require('../../context/WalletGroupContext/WalletGroupContext.cjs');
|
|
@@ -54,7 +55,6 @@ require('../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
|
|
|
54
55
|
require('formik');
|
|
55
56
|
require('yup');
|
|
56
57
|
require('../../components/IconButton/IconButton.cjs');
|
|
57
|
-
var PoweredByDynamic = require('../../components/PoweredByDynamic/PoweredByDynamic.cjs');
|
|
58
58
|
require('../../components/Alert/Alert.cjs');
|
|
59
59
|
require('../../components/Popper/Popper/Popper.cjs');
|
|
60
60
|
require('../../components/Popper/PopperContext/PopperContext.cjs');
|
|
@@ -32,6 +32,7 @@ import '../../context/FooterAnimationContext/index.js';
|
|
|
32
32
|
import '../../context/MockContext/MockContext.js';
|
|
33
33
|
import '../../context/QrCodeContext/QrCodeContext.js';
|
|
34
34
|
import 'react-i18next';
|
|
35
|
+
import { PoweredByDynamic } from '../../components/PoweredByDynamic/PoweredByDynamic.js';
|
|
35
36
|
import '../../context/AccountExistsContext/AccountExistsContext.js';
|
|
36
37
|
import '../../context/ErrorContext/ErrorContext.js';
|
|
37
38
|
import '../../context/WalletGroupContext/WalletGroupContext.js';
|
|
@@ -50,7 +51,6 @@ import '../../context/UserFieldEditorContext/UserFieldEditorContext.js';
|
|
|
50
51
|
import 'formik';
|
|
51
52
|
import 'yup';
|
|
52
53
|
import '../../components/IconButton/IconButton.js';
|
|
53
|
-
import { PoweredByDynamic } from '../../components/PoweredByDynamic/PoweredByDynamic.js';
|
|
54
54
|
import '../../components/Alert/Alert.js';
|
|
55
55
|
import '../../components/Popper/Popper/Popper.js';
|
|
56
56
|
import '../../components/Popper/PopperContext/PopperContext.js';
|
|
@@ -10,7 +10,9 @@ require('../../shared/logger.cjs');
|
|
|
10
10
|
require('@dynamic-labs/iconic');
|
|
11
11
|
require('@dynamic-labs/wallet-connector-core');
|
|
12
12
|
require('../../context/ViewContext/ViewContext.cjs');
|
|
13
|
+
var checkConnection = require('../../shared/assets/check-connection.cjs');
|
|
13
14
|
require('@dynamic-labs/wallet-book');
|
|
15
|
+
var shortenWalletAddress = require('../../shared/utils/functions/shortenWalletAddress/shortenWalletAddress.cjs');
|
|
14
16
|
require('@dynamic-labs/utils');
|
|
15
17
|
require('../../utils/constants/colors.cjs');
|
|
16
18
|
require('../../shared/utils/classes/storage/localStorage.cjs');
|
|
@@ -22,6 +24,8 @@ var createUserProfile = require('../../utils/functions/createUserProfile/createU
|
|
|
22
24
|
var isSupportedNetwork = require('../../utils/functions/isSupportedNetwork/isSupportedNetwork.cjs');
|
|
23
25
|
require('../../components/ShadowDOM/ShadowDOM.cjs');
|
|
24
26
|
require('../../context/ThemeContext/ThemeContext.cjs');
|
|
27
|
+
var classNames = require('../../utils/functions/classNames/classNames.cjs');
|
|
28
|
+
var Icon = require('../../components/Icon/Icon.cjs');
|
|
25
29
|
require('react-dom');
|
|
26
30
|
require('react-focus-lock');
|
|
27
31
|
require('../../components/Transition/ZoomTransition/ZoomTransition.cjs');
|
|
@@ -62,12 +66,12 @@ require('../../components/Popper/PopperContext/PopperContext.cjs');
|
|
|
62
66
|
require('../../components/InlineWidget/InlineWidget.cjs');
|
|
63
67
|
require('../../components/MenuList/Dropdown/Dropdown.cjs');
|
|
64
68
|
var NetworkPicker = require('../../components/NetworkPicker/NetworkPicker.cjs');
|
|
65
|
-
var UserAddress = require('../../components/UserAddress/UserAddress.cjs');
|
|
66
69
|
var useFetchNameService = require('../../widgets/DynamicWidget/hooks/useFetchNameService/useFetchNameService.cjs');
|
|
67
70
|
var OnboardingUserDataForm = require('./OnboardingUserDataForm/OnboardingUserDataForm.cjs');
|
|
68
71
|
|
|
69
72
|
const CollectUserDataView = () => {
|
|
70
|
-
|
|
73
|
+
var _a;
|
|
74
|
+
const { appName, onboardingOnlyJwt, projectSettings, network, decodedOnboardingOnlyToken, selectedWalletConnector: walletConnector, handleLogOut, onboardingImageUrl, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
71
75
|
const [isNetworkPickerOpen, setIsNetworkPickerOpen] = React.useState(false);
|
|
72
76
|
const nameService = useFetchNameService.useFetchNameService();
|
|
73
77
|
if (!walletConnector || !decodedOnboardingOnlyToken) {
|
|
@@ -76,9 +80,12 @@ const CollectUserDataView = () => {
|
|
|
76
80
|
const userProfile = createUserProfile.createUserProfile(decodedOnboardingOnlyToken);
|
|
77
81
|
const evmNetworks = walletConnector.evmNetworks || [];
|
|
78
82
|
const _isSupportedNetwork = !network || isSupportedNetwork.isSupportedNetwork({ network, walletConnector });
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
83
|
+
const walletAddress = (_a = userProfile === null || userProfile === void 0 ? void 0 : userProfile.verifiedCredentials.find((verifiedCredential) => verifiedCredential.id === userProfile.lastVerifiedCredentialId)) === null || _a === void 0 ? void 0 : _a.address;
|
|
84
|
+
return (jsxRuntime.jsxs("div", { className: 'collect-user-data', "data-testid": 'collect-user-data-view', children: [jsxRuntime.jsxs("div", { className: 'collect-user-data__network-container', children: [jsxRuntime.jsxs("div", { className: 'collect-user-data__img-container', children: [(nameService === null || nameService === void 0 ? void 0 : nameService.avatar) ? (jsxRuntime.jsx("img", { src: nameService.avatar, alt: '', className: 'collect-user-data__img collect-user-data__img--rounded' })) : (jsxRuntime.jsx(AuthProviderIcon.AuthProviderIcon, { jwt: onboardingOnlyJwt, iconSize: 28 })), jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', color: 'primary', weight: 'medium', className: 'collect-user-data__wallet-address', children: (nameService === null || nameService === void 0 ? void 0 : nameService.name) || shortenWalletAddress.shortenWalletAddress(walletAddress, 3, 3) })] }), jsxRuntime.jsx(NetworkPicker.NetworkPicker, { evmNetworks: evmNetworks, connector: walletConnector, showNetworkName: true, isNetworkPickerOpen: isNetworkPickerOpen, setIsNetworkPickerOpen: setIsNetworkPickerOpen, buttonClassName: 'collect-user-data__network-picker-button', mainClassName: 'collect-user-data__network-picker' })] }), onboardingImageUrl && (jsxRuntime.jsx("img", { className: 'collect-user-data__main-img', src: onboardingImageUrl, alt: 'onboarding' })), !_isSupportedNetwork && (jsxRuntime.jsx(ErrorContainer.ErrorContainer, { withIcon: false, className: 'collect-user-data__error--not-supported', children: "This network is not available, please update." })), jsxRuntime.jsxs("div", { className: classNames.classNames('collect-user-data__form', {
|
|
85
|
+
'collect-user-data__form--error': !_isSupportedNetwork,
|
|
86
|
+
}), children: [jsxRuntime.jsx("div", { className: 'collect-user-data__success-icon', children: jsxRuntime.jsx(Icon.Icon, { color: 'text-primary', size: 'large', children: jsxRuntime.jsx(checkConnection.ReactComponent, {}) }) }), jsxRuntime.jsx(OnboardingUserDataForm.OnboardingUserDataForm, { disableSubmit: !_isSupportedNetwork, userProfile: userProfile, children: !_isSupportedNetwork ? (jsxRuntime.jsxs("div", { className: 'collect-user-data__welcome-container', children: [jsxRuntime.jsx(Typography.Typography, { variant: 'title', color: 'primary', className: 'collect-user-data__welcome-title', children: "Update Network" }), jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', children: "Your wallet is not connected to a supported network. Please update before continuing." })] })) : (jsxRuntime.jsxs("div", { className: 'collect-user-data__welcome-container', children: [jsxRuntime.jsx(Typography.Typography, { variant: 'title', color: 'primary', className: 'collect-user-data__welcome-title', children: (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general.collectUserDataWelcomeHeader) ||
|
|
87
|
+
`Welcome to ${appName}` }), jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', children: (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general.collectUserDataWelcomeMessage) ||
|
|
88
|
+
'We need a bit of information to get started' })] })) }), jsxRuntime.jsx(TextButton.TextButton, { className: 'collect-user-data__log-out', onClick: handleLogOut, children: "Log out" })] })] }));
|
|
82
89
|
};
|
|
83
90
|
|
|
84
91
|
exports.CollectUserDataView = CollectUserDataView;
|
|
@@ -6,7 +6,9 @@ import '../../shared/logger.js';
|
|
|
6
6
|
import '@dynamic-labs/iconic';
|
|
7
7
|
import '@dynamic-labs/wallet-connector-core';
|
|
8
8
|
import '../../context/ViewContext/ViewContext.js';
|
|
9
|
+
import { ReactComponent as SvgCheckConnection } from '../../shared/assets/check-connection.js';
|
|
9
10
|
import '@dynamic-labs/wallet-book';
|
|
11
|
+
import { shortenWalletAddress } from '../../shared/utils/functions/shortenWalletAddress/shortenWalletAddress.js';
|
|
10
12
|
import '@dynamic-labs/utils';
|
|
11
13
|
import '../../utils/constants/colors.js';
|
|
12
14
|
import '../../shared/utils/classes/storage/localStorage.js';
|
|
@@ -18,6 +20,8 @@ import { createUserProfile } from '../../utils/functions/createUserProfile/creat
|
|
|
18
20
|
import { isSupportedNetwork } from '../../utils/functions/isSupportedNetwork/isSupportedNetwork.js';
|
|
19
21
|
import '../../components/ShadowDOM/ShadowDOM.js';
|
|
20
22
|
import '../../context/ThemeContext/ThemeContext.js';
|
|
23
|
+
import { classNames } from '../../utils/functions/classNames/classNames.js';
|
|
24
|
+
import { Icon } from '../../components/Icon/Icon.js';
|
|
21
25
|
import 'react-dom';
|
|
22
26
|
import 'react-focus-lock';
|
|
23
27
|
import '../../components/Transition/ZoomTransition/ZoomTransition.js';
|
|
@@ -58,12 +62,12 @@ import '../../components/Popper/PopperContext/PopperContext.js';
|
|
|
58
62
|
import '../../components/InlineWidget/InlineWidget.js';
|
|
59
63
|
import '../../components/MenuList/Dropdown/Dropdown.js';
|
|
60
64
|
import { NetworkPicker } from '../../components/NetworkPicker/NetworkPicker.js';
|
|
61
|
-
import { UserAddress } from '../../components/UserAddress/UserAddress.js';
|
|
62
65
|
import { useFetchNameService } from '../../widgets/DynamicWidget/hooks/useFetchNameService/useFetchNameService.js';
|
|
63
66
|
import { OnboardingUserDataForm } from './OnboardingUserDataForm/OnboardingUserDataForm.js';
|
|
64
67
|
|
|
65
68
|
const CollectUserDataView = () => {
|
|
66
|
-
|
|
69
|
+
var _a;
|
|
70
|
+
const { appName, onboardingOnlyJwt, projectSettings, network, decodedOnboardingOnlyToken, selectedWalletConnector: walletConnector, handleLogOut, onboardingImageUrl, } = useInternalDynamicContext();
|
|
67
71
|
const [isNetworkPickerOpen, setIsNetworkPickerOpen] = useState(false);
|
|
68
72
|
const nameService = useFetchNameService();
|
|
69
73
|
if (!walletConnector || !decodedOnboardingOnlyToken) {
|
|
@@ -72,9 +76,12 @@ const CollectUserDataView = () => {
|
|
|
72
76
|
const userProfile = createUserProfile(decodedOnboardingOnlyToken);
|
|
73
77
|
const evmNetworks = walletConnector.evmNetworks || [];
|
|
74
78
|
const _isSupportedNetwork = !network || isSupportedNetwork({ network, walletConnector });
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
79
|
+
const walletAddress = (_a = userProfile === null || userProfile === void 0 ? void 0 : userProfile.verifiedCredentials.find((verifiedCredential) => verifiedCredential.id === userProfile.lastVerifiedCredentialId)) === null || _a === void 0 ? void 0 : _a.address;
|
|
80
|
+
return (jsxs("div", { className: 'collect-user-data', "data-testid": 'collect-user-data-view', children: [jsxs("div", { className: 'collect-user-data__network-container', children: [jsxs("div", { className: 'collect-user-data__img-container', children: [(nameService === null || nameService === void 0 ? void 0 : nameService.avatar) ? (jsx("img", { src: nameService.avatar, alt: '', className: 'collect-user-data__img collect-user-data__img--rounded' })) : (jsx(AuthProviderIcon, { jwt: onboardingOnlyJwt, iconSize: 28 })), jsx(Typography, { variant: 'body_normal', color: 'primary', weight: 'medium', className: 'collect-user-data__wallet-address', children: (nameService === null || nameService === void 0 ? void 0 : nameService.name) || shortenWalletAddress(walletAddress, 3, 3) })] }), jsx(NetworkPicker, { evmNetworks: evmNetworks, connector: walletConnector, showNetworkName: true, isNetworkPickerOpen: isNetworkPickerOpen, setIsNetworkPickerOpen: setIsNetworkPickerOpen, buttonClassName: 'collect-user-data__network-picker-button', mainClassName: 'collect-user-data__network-picker' })] }), onboardingImageUrl && (jsx("img", { className: 'collect-user-data__main-img', src: onboardingImageUrl, alt: 'onboarding' })), !_isSupportedNetwork && (jsx(ErrorContainer, { withIcon: false, className: 'collect-user-data__error--not-supported', children: "This network is not available, please update." })), jsxs("div", { className: classNames('collect-user-data__form', {
|
|
81
|
+
'collect-user-data__form--error': !_isSupportedNetwork,
|
|
82
|
+
}), children: [jsx("div", { className: 'collect-user-data__success-icon', children: jsx(Icon, { color: 'text-primary', size: 'large', children: jsx(SvgCheckConnection, {}) }) }), jsx(OnboardingUserDataForm, { disableSubmit: !_isSupportedNetwork, userProfile: userProfile, children: !_isSupportedNetwork ? (jsxs("div", { className: 'collect-user-data__welcome-container', children: [jsx(Typography, { variant: 'title', color: 'primary', className: 'collect-user-data__welcome-title', children: "Update Network" }), jsx(Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', children: "Your wallet is not connected to a supported network. Please update before continuing." })] })) : (jsxs("div", { className: 'collect-user-data__welcome-container', children: [jsx(Typography, { variant: 'title', color: 'primary', className: 'collect-user-data__welcome-title', children: (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general.collectUserDataWelcomeHeader) ||
|
|
83
|
+
`Welcome to ${appName}` }), jsx(Typography, { variant: 'body_normal', weight: 'regular', color: 'secondary', children: (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general.collectUserDataWelcomeMessage) ||
|
|
84
|
+
'We need a bit of information to get started' })] })) }), jsx(TextButton, { className: 'collect-user-data__log-out', onClick: handleLogOut, children: "Log out" })] })] }));
|
|
78
85
|
};
|
|
79
86
|
|
|
80
87
|
export { CollectUserDataView };
|
|
@@ -115,7 +115,7 @@ const OnboardingUserDataForm = ({ children, userProfile, disableSubmit, }) => {
|
|
|
115
115
|
(enforcePolicies &&
|
|
116
116
|
(policiesConsentInnerComponentArray === null || policiesConsentInnerComponentArray === void 0 ? void 0 : policiesConsentInnerComponentArray.length) !==
|
|
117
117
|
((_a = values.policiesConsentArray) === null || _a === void 0 ? void 0 : _a.length));
|
|
118
|
-
return (jsxRuntime.jsx(formik.Form, { className: 'user-data-form__form', children: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [children, jsxRuntime.jsx(index.UserDataFields, { fields: decodedJwt === null || decodedJwt === void 0 ? void 0 : decodedJwt.missingFields, errors: errors, touched: touched, policiesConsentInnerComponentArray: policiesConsentInnerComponentArray }), jsxRuntime.jsx(Button.Button, { type: 'submit', loading: loading, disabled: isSubmitBtnDisabled, buttonVariant: 'primary', expanded: true,
|
|
118
|
+
return (jsxRuntime.jsx(formik.Form, { className: 'user-data-form__form', children: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [children, jsxRuntime.jsx(index.UserDataFields, { fields: decodedJwt === null || decodedJwt === void 0 ? void 0 : decodedJwt.missingFields, errors: errors, touched: touched, policiesConsentInnerComponentArray: policiesConsentInnerComponentArray }), jsxRuntime.jsx(Button.Button, { type: 'submit', loading: loading, disabled: isSubmitBtnDisabled, buttonVariant: 'primary', expanded: true, buttonPadding: 'large', children: "Continue" })] }) }));
|
|
119
119
|
} }));
|
|
120
120
|
};
|
|
121
121
|
|
|
@@ -111,7 +111,7 @@ const OnboardingUserDataForm = ({ children, userProfile, disableSubmit, }) => {
|
|
|
111
111
|
(enforcePolicies &&
|
|
112
112
|
(policiesConsentInnerComponentArray === null || policiesConsentInnerComponentArray === void 0 ? void 0 : policiesConsentInnerComponentArray.length) !==
|
|
113
113
|
((_a = values.policiesConsentArray) === null || _a === void 0 ? void 0 : _a.length));
|
|
114
|
-
return (jsx(Form, { className: 'user-data-form__form', children: jsxs(Fragment, { children: [children, jsx(UserDataFields, { fields: decodedJwt === null || decodedJwt === void 0 ? void 0 : decodedJwt.missingFields, errors: errors, touched: touched, policiesConsentInnerComponentArray: policiesConsentInnerComponentArray }), jsx(Button, { type: 'submit', loading: loading, disabled: isSubmitBtnDisabled, buttonVariant: 'primary', expanded: true,
|
|
114
|
+
return (jsx(Form, { className: 'user-data-form__form', children: jsxs(Fragment, { children: [children, jsx(UserDataFields, { fields: decodedJwt === null || decodedJwt === void 0 ? void 0 : decodedJwt.missingFields, errors: errors, touched: touched, policiesConsentInnerComponentArray: policiesConsentInnerComponentArray }), jsx(Button, { type: 'submit', loading: loading, disabled: isSubmitBtnDisabled, buttonVariant: 'primary', expanded: true, buttonPadding: 'large', children: "Continue" })] }) }));
|
|
115
115
|
} }));
|
|
116
116
|
};
|
|
117
117
|
|