@dynamic-labs/sdk-react-core 1.4.2 → 1.4.4
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 +20 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +11 -11
- package/src/index.cjs +13 -13
- package/src/index.d.ts +289 -9
- package/src/lib/components/DynamicFooter/DynamicFooter.cjs +8 -1
- package/src/lib/components/DynamicFooter/DynamicFooter.js +8 -1
- package/src/lib/components/Toolkit/Toolkit.cjs +2 -3
- package/src/lib/components/Toolkit/Toolkit.js +2 -3
- package/src/lib/components/Toolkit/components/index.d.ts +0 -1
- package/src/lib/context/DynamicContext/DynamicContext.cjs +28 -33
- package/src/lib/context/DynamicContext/DynamicContext.js +30 -35
- package/src/lib/context/DynamicContext/handleDisconnectWallet/handleDisconnectWallet.cjs +1 -4
- package/src/lib/context/DynamicContext/handleDisconnectWallet/handleDisconnectWallet.d.ts +1 -7
- package/src/lib/context/DynamicContext/handleDisconnectWallet/handleDisconnectWallet.js +1 -4
- package/src/lib/context/DynamicContext/helpers/helpers.cjs +2 -2
- package/src/lib/context/DynamicContext/helpers/helpers.d.ts +2 -2
- package/src/lib/context/DynamicContext/helpers/helpers.js +2 -2
- package/src/lib/context/DynamicContext/hooks/index.d.ts +1 -0
- package/src/lib/context/DynamicContext/hooks/useHandleLogout/types.d.ts +1 -3
- package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.cjs +1 -5
- package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.js +2 -6
- package/src/lib/context/DynamicContext/hooks/useMultiWallet/useMultiWallet.cjs +15 -0
- package/src/lib/context/DynamicContext/hooks/useMultiWallet/useMultiWallet.d.ts +6 -0
- package/src/lib/context/DynamicContext/hooks/useMultiWallet/useMultiWallet.js +11 -0
- package/src/lib/context/DynamicContext/hooks/useSetShowLinkNewWalletModal/useSetShowLinkNewWalletModal.cjs +1 -1
- package/src/lib/context/DynamicContext/hooks/useSetShowLinkNewWalletModal/useSetShowLinkNewWalletModal.js +1 -1
- package/src/lib/context/DynamicContext/types/index.d.ts +9 -3
- package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.cjs +4 -2
- package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.js +4 -2
- package/src/lib/context/LoadingContext/LoadingContext.cjs +1 -0
- package/src/lib/context/LoadingContext/LoadingContext.js +1 -0
- package/src/lib/data/api.cjs +3 -0
- package/src/lib/data/api.js +4 -1
- package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.cjs +1 -1
- package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.js +1 -1
- package/src/lib/main.global.cjs +1 -1
- package/src/lib/main.global.js +1 -1
- package/src/lib/shared/utils/hooks/usePreventPageScroll/usePreventPageScroll.cjs +0 -10
- package/src/lib/shared/utils/hooks/usePreventPageScroll/usePreventPageScroll.js +0 -10
- 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/localStorage.cjs +2 -4
- package/src/lib/utils/constants/localStorage.d.ts +1 -2
- package/src/lib/utils/constants/localStorage.js +2 -3
- package/src/lib/utils/functions/walletListBuilder/utils/getCalculatedOffset/getCalculatedOffset.cjs +9 -4
- package/src/lib/utils/functions/walletListBuilder/utils/getCalculatedOffset/getCalculatedOffset.js +9 -4
- package/src/lib/utils/functions/walletListBuilder/walletListBuilder.cjs +24 -15
- package/src/lib/utils/functions/walletListBuilder/walletListBuilder.d.ts +13 -0
- package/src/lib/utils/functions/walletListBuilder/walletListBuilder.js +24 -16
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +16 -1
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +16 -1
- package/src/lib/utils/hooks/index.d.ts +1 -0
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +6 -1
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.d.ts +1 -0
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +6 -1
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +2 -6
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +2 -3
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +2 -6
- package/src/lib/utils/hooks/useHandleWalletsToConnect/useHandleWalletsToConnect.cjs +4 -5
- package/src/lib/utils/hooks/useHandleWalletsToConnect/useHandleWalletsToConnect.js +4 -5
- package/src/lib/utils/hooks/useNetworkNotSupported/index.d.ts +1 -0
- package/src/lib/utils/hooks/useNetworkNotSupported/useNetworkNotSupported.cjs +104 -0
- package/src/lib/utils/hooks/useNetworkNotSupported/useNetworkNotSupported.d.ts +3 -0
- package/src/lib/utils/hooks/useNetworkNotSupported/useNetworkNotSupported.js +100 -0
- package/src/lib/utils/hooks/useUserDataForm/useUserDataForm.cjs +5 -0
- package/src/lib/utils/hooks/useUserDataForm/useUserDataForm.js +6 -1
- package/src/lib/views/NetworkNotSupported/NetworkNotSupported.cjs +9 -31
- package/src/lib/views/NetworkNotSupported/NetworkNotSupported.js +10 -32
- package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.cjs +8 -31
- package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.js +8 -31
- package/src/lib/widgets/DynamicEmbeddedWidget/DynamicEmbeddedAuthFlow/DynamicEmbeddedAuthFlow.cjs +11 -1
- package/src/lib/widgets/DynamicEmbeddedWidget/DynamicEmbeddedAuthFlow/DynamicEmbeddedAuthFlow.js +11 -1
- package/src/lib/components/Toolkit/components/MultiWalletSwitch.cjs +0 -18
- package/src/lib/components/Toolkit/components/MultiWalletSwitch.d.ts +0 -6
- package/src/lib/components/Toolkit/components/MultiWalletSwitch.js +0 -14
- package/src/lib/utils/hooks/multiWallet/useMultiWallet/useMultiWallet.cjs +0 -39
- package/src/lib/utils/hooks/multiWallet/useMultiWallet/useMultiWallet.d.ts +0 -9
- package/src/lib/utils/hooks/multiWallet/useMultiWallet/useMultiWallet.js +0 -35
- /package/src/lib/{utils/hooks/multiWallet → context/DynamicContext/hooks}/useMultiWallet/index.d.ts +0 -0
package/src/lib/utils/functions/walletListBuilder/utils/getCalculatedOffset/getCalculatedOffset.js
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
|
+
import '../../../../constants/colors.js';
|
|
2
|
+
import { DEFAULT_NUMBER_OF_WALLETS_TO_SHOW } from '../../../../constants/values.js';
|
|
1
3
|
import { findLastPriorityIndex } from '../findLastWalletIndex/findLastPriorityIndex.js';
|
|
2
4
|
|
|
3
5
|
const getCalculatedOffset = ({ hasWalletFilter, defaultOffset, list, priorityList, }) => {
|
|
4
6
|
const lastPriorityIndex = findLastPriorityIndex(list, priorityList);
|
|
5
|
-
if (
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
if (defaultOffset === DEFAULT_NUMBER_OF_WALLETS_TO_SHOW &&
|
|
8
|
+
!hasWalletFilter &&
|
|
9
|
+
list.length > defaultOffset &&
|
|
10
|
+
lastPriorityIndex !== -1) {
|
|
11
|
+
return lastPriorityIndex + 1;
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
8
14
|
return defaultOffset;
|
|
9
15
|
}
|
|
10
|
-
return lastPriorityIndex + 1;
|
|
11
16
|
};
|
|
12
17
|
|
|
13
18
|
export { getCalculatedOffset };
|
|
@@ -86,8 +86,10 @@ const walletListBuilder = ({ authMode, connectedWallets, multiWallet, numberOfWa
|
|
|
86
86
|
const finalizedWalletList = groupWallets
|
|
87
87
|
? groupWalletOptions.groupWalletOptions(walletBook, walletsList)
|
|
88
88
|
: walletsList;
|
|
89
|
+
// If a filter has been applied we want to add an offset to the number of wallets
|
|
90
|
+
// to include the installed and last used wallets
|
|
89
91
|
const updatedNumberOfWalletsToShow = showMoreWalletsWithFilter && hasWalletFilter
|
|
90
|
-
?
|
|
92
|
+
? calculateWalletOffsetBasedOnInstalledAndLastUsedWallets(orderedInputList, firstPriorityWallets.concat(installedWallets), numberOfWalletsToShow)
|
|
91
93
|
: numberOfWalletsToShow;
|
|
92
94
|
return {
|
|
93
95
|
numberOfWallets: walletsList.length,
|
|
@@ -104,17 +106,24 @@ const orderAndFilterList = (walletList, walletsFilter, isWalletConnectList) => {
|
|
|
104
106
|
return sortedInputList(walletList);
|
|
105
107
|
}
|
|
106
108
|
};
|
|
109
|
+
const KEEP_WALLETS_NAME_LIST = ['wallet connect'];
|
|
107
110
|
const applySearchFilterToWalletOptionList = (rawSearchFilter, walletOptionList) => {
|
|
108
111
|
const searchFilter = rawSearchFilter.trim().toLowerCase();
|
|
109
|
-
const cleanName = (name) =>
|
|
110
|
-
.trim()
|
|
111
|
-
.
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
112
|
+
const cleanName = (name) => {
|
|
113
|
+
const trimmedLowerName = name.trim().toLowerCase();
|
|
114
|
+
if (KEEP_WALLETS_NAME_LIST.includes(trimmedLowerName)) {
|
|
115
|
+
return trimmedLowerName;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
return trimmedLowerName
|
|
119
|
+
.replace('wallet', '')
|
|
120
|
+
.replace('evm', '')
|
|
121
|
+
.replace('starknet', '')
|
|
122
|
+
.replace('solana', '')
|
|
123
|
+
.replace('flow', '')
|
|
124
|
+
.replace('bitcoin', '');
|
|
125
|
+
}
|
|
126
|
+
};
|
|
118
127
|
return walletOptionList.filter((walletOption) => {
|
|
119
128
|
var _a;
|
|
120
129
|
return cleanName(walletOption.name).includes(searchFilter) ||
|
|
@@ -145,19 +154,18 @@ const listToDisplay = (finalizedList, searchFilter, isWalletConnectList, numberO
|
|
|
145
154
|
}
|
|
146
155
|
};
|
|
147
156
|
/**
|
|
148
|
-
* When a filter is applied we would like to show the installed + last used wallets
|
|
149
|
-
* in addition to the wallets that the filter has specified.
|
|
150
157
|
* This calculation adds an offset to numberOfWalletsToShow so we will show the
|
|
151
158
|
* intended wallets + installed and last used.
|
|
159
|
+
* We should would only apply the additonal offset if the installed wallets was not in the original list.
|
|
152
160
|
*
|
|
153
161
|
* For example:
|
|
154
162
|
* we want to show 4 wallets: ['metamask', 'rainbow', 'walletconnect', 'coinbase']
|
|
155
163
|
* and someone is using brave with installed phantom he should see
|
|
156
164
|
* [ 'brave injected', phantom ,'metamask', 'rainbow', 'walletconnect', 'coinbase',]
|
|
157
|
-
*
|
|
158
|
-
*
|
|
165
|
+
* And when someone is using metamask and coinbase they should see
|
|
166
|
+
* [ 'metamask', 'coinbase', 'rainbow', 'walletconnect']
|
|
159
167
|
*/
|
|
160
|
-
const
|
|
168
|
+
const calculateWalletOffsetBasedOnInstalledAndLastUsedWallets = (allWalletsOrdered, installedOrUsedWallets, numberOfWalletsToShow) => {
|
|
161
169
|
const filteredWallets = allWalletsOrdered.slice(0, numberOfWalletsToShow);
|
|
162
170
|
const offset = installedOrUsedWallets.filter((wallet) => !filteredWallets.includes(wallet)).length;
|
|
163
171
|
return numberOfWalletsToShow + offset;
|
|
@@ -177,4 +185,5 @@ const getSignWithEmailWallet = (signWithEmailWalletName, inputList) => {
|
|
|
177
185
|
|
|
178
186
|
exports.PRIORITY_WALLET_LIST = PRIORITY_WALLET_LIST;
|
|
179
187
|
exports.SIGN_IN_WITH_EMAIL_WALLET_NAME = SIGN_IN_WITH_EMAIL_WALLET_NAME;
|
|
188
|
+
exports.calculateWalletOffsetBasedOnInstalledAndLastUsedWallets = calculateWalletOffsetBasedOnInstalledAndLastUsedWallets;
|
|
180
189
|
exports.walletListBuilder = walletListBuilder;
|
|
@@ -23,4 +23,17 @@ type BuilderResult = {
|
|
|
23
23
|
export declare const PRIORITY_WALLET_LIST: string[];
|
|
24
24
|
export declare const SIGN_IN_WITH_EMAIL_WALLET_NAME = "Sign In With Email";
|
|
25
25
|
export declare const walletListBuilder: ({ authMode, connectedWallets, multiWallet, numberOfWalletsToShow, inputList, isWalletConnectList, lastUsedWalletKey, signWithEmailWalletName, searchFilter, walletsFilter, loginWithEmail, groupWallets, walletBook, showMoreWalletsWithFilter, }: BuilderParams) => BuilderResult;
|
|
26
|
+
/**
|
|
27
|
+
* This calculation adds an offset to numberOfWalletsToShow so we will show the
|
|
28
|
+
* intended wallets + installed and last used.
|
|
29
|
+
* We should would only apply the additonal offset if the installed wallets was not in the original list.
|
|
30
|
+
*
|
|
31
|
+
* For example:
|
|
32
|
+
* we want to show 4 wallets: ['metamask', 'rainbow', 'walletconnect', 'coinbase']
|
|
33
|
+
* and someone is using brave with installed phantom he should see
|
|
34
|
+
* [ 'brave injected', phantom ,'metamask', 'rainbow', 'walletconnect', 'coinbase',]
|
|
35
|
+
* And when someone is using metamask and coinbase they should see
|
|
36
|
+
* [ 'metamask', 'coinbase', 'rainbow', 'walletconnect']
|
|
37
|
+
*/
|
|
38
|
+
export declare const calculateWalletOffsetBasedOnInstalledAndLastUsedWallets: (allWalletsOrdered: WalletOption[], installedOrUsedWallets: WalletOption[], numberOfWalletsToShow: number) => number;
|
|
26
39
|
export {};
|
|
@@ -82,8 +82,10 @@ const walletListBuilder = ({ authMode, connectedWallets, multiWallet, numberOfWa
|
|
|
82
82
|
const finalizedWalletList = groupWallets
|
|
83
83
|
? groupWalletOptions(walletBook, walletsList)
|
|
84
84
|
: walletsList;
|
|
85
|
+
// If a filter has been applied we want to add an offset to the number of wallets
|
|
86
|
+
// to include the installed and last used wallets
|
|
85
87
|
const updatedNumberOfWalletsToShow = showMoreWalletsWithFilter && hasWalletFilter
|
|
86
|
-
?
|
|
88
|
+
? calculateWalletOffsetBasedOnInstalledAndLastUsedWallets(orderedInputList, firstPriorityWallets.concat(installedWallets), numberOfWalletsToShow)
|
|
87
89
|
: numberOfWalletsToShow;
|
|
88
90
|
return {
|
|
89
91
|
numberOfWallets: walletsList.length,
|
|
@@ -100,17 +102,24 @@ const orderAndFilterList = (walletList, walletsFilter, isWalletConnectList) => {
|
|
|
100
102
|
return sortedInputList(walletList);
|
|
101
103
|
}
|
|
102
104
|
};
|
|
105
|
+
const KEEP_WALLETS_NAME_LIST = ['wallet connect'];
|
|
103
106
|
const applySearchFilterToWalletOptionList = (rawSearchFilter, walletOptionList) => {
|
|
104
107
|
const searchFilter = rawSearchFilter.trim().toLowerCase();
|
|
105
|
-
const cleanName = (name) =>
|
|
106
|
-
.trim()
|
|
107
|
-
.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
108
|
+
const cleanName = (name) => {
|
|
109
|
+
const trimmedLowerName = name.trim().toLowerCase();
|
|
110
|
+
if (KEEP_WALLETS_NAME_LIST.includes(trimmedLowerName)) {
|
|
111
|
+
return trimmedLowerName;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
return trimmedLowerName
|
|
115
|
+
.replace('wallet', '')
|
|
116
|
+
.replace('evm', '')
|
|
117
|
+
.replace('starknet', '')
|
|
118
|
+
.replace('solana', '')
|
|
119
|
+
.replace('flow', '')
|
|
120
|
+
.replace('bitcoin', '');
|
|
121
|
+
}
|
|
122
|
+
};
|
|
114
123
|
return walletOptionList.filter((walletOption) => {
|
|
115
124
|
var _a;
|
|
116
125
|
return cleanName(walletOption.name).includes(searchFilter) ||
|
|
@@ -141,19 +150,18 @@ const listToDisplay = (finalizedList, searchFilter, isWalletConnectList, numberO
|
|
|
141
150
|
}
|
|
142
151
|
};
|
|
143
152
|
/**
|
|
144
|
-
* When a filter is applied we would like to show the installed + last used wallets
|
|
145
|
-
* in addition to the wallets that the filter has specified.
|
|
146
153
|
* This calculation adds an offset to numberOfWalletsToShow so we will show the
|
|
147
154
|
* intended wallets + installed and last used.
|
|
155
|
+
* We should would only apply the additonal offset if the installed wallets was not in the original list.
|
|
148
156
|
*
|
|
149
157
|
* For example:
|
|
150
158
|
* we want to show 4 wallets: ['metamask', 'rainbow', 'walletconnect', 'coinbase']
|
|
151
159
|
* and someone is using brave with installed phantom he should see
|
|
152
160
|
* [ 'brave injected', phantom ,'metamask', 'rainbow', 'walletconnect', 'coinbase',]
|
|
153
|
-
*
|
|
154
|
-
*
|
|
161
|
+
* And when someone is using metamask and coinbase they should see
|
|
162
|
+
* [ 'metamask', 'coinbase', 'rainbow', 'walletconnect']
|
|
155
163
|
*/
|
|
156
|
-
const
|
|
164
|
+
const calculateWalletOffsetBasedOnInstalledAndLastUsedWallets = (allWalletsOrdered, installedOrUsedWallets, numberOfWalletsToShow) => {
|
|
157
165
|
const filteredWallets = allWalletsOrdered.slice(0, numberOfWalletsToShow);
|
|
158
166
|
const offset = installedOrUsedWallets.filter((wallet) => !filteredWallets.includes(wallet)).length;
|
|
159
167
|
return numberOfWalletsToShow + offset;
|
|
@@ -171,4 +179,4 @@ const getSignWithEmailWallet = (signWithEmailWalletName, inputList) => {
|
|
|
171
179
|
return walletOverride;
|
|
172
180
|
};
|
|
173
181
|
|
|
174
|
-
export { PRIORITY_WALLET_LIST, SIGN_IN_WITH_EMAIL_WALLET_NAME, walletListBuilder };
|
|
182
|
+
export { PRIORITY_WALLET_LIST, SIGN_IN_WITH_EMAIL_WALLET_NAME, calculateWalletOffsetBasedOnInstalledAndLastUsedWallets, walletListBuilder };
|
|
@@ -23,6 +23,8 @@ require('../../../../shared/consts/index.cjs');
|
|
|
23
23
|
require('../../../../events/dynamicEvents.cjs');
|
|
24
24
|
var ErrorContext = require('../../../../context/ErrorContext/ErrorContext.cjs');
|
|
25
25
|
require('@dynamic-labs/multi-wallet');
|
|
26
|
+
var isProgrammableNetworkSwitchSupported = require('../../../functions/isProgrammableNetworkSwitchSupported/isProgrammableNetworkSwitchSupported.cjs');
|
|
27
|
+
var isSupportedNetwork = require('../../../functions/isSupportedNetwork/isSupportedNetwork.cjs');
|
|
26
28
|
require('viem/chains');
|
|
27
29
|
var useHandleWalletsToConnect = require('../../useHandleWalletsToConnect/useHandleWalletsToConnect.cjs');
|
|
28
30
|
var useVerifyWallet = require('../../useVerifyWallet/useVerifyWallet.cjs');
|
|
@@ -80,7 +82,7 @@ const useConnectAndSignSplitSteps = () => {
|
|
|
80
82
|
const { setView, goToInitialView } = ViewContext.useViewContext();
|
|
81
83
|
const { setErrorMessage } = ErrorContext.useErrorContext();
|
|
82
84
|
const { getCaptchaToken, engageCaptcha } = CaptchaContext.useCaptchaContext();
|
|
83
|
-
const { connectWallet, consumeNonce, displaySiweStatement, projectSettings, environmentId, setIsSingleWalletAccount, setShowAuthFlow, user, authMode, setIsVerificationInProgress, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
85
|
+
const { connectWallet, consumeNonce, displaySiweStatement, projectSettings, environmentId, networkValidationMode, setIsSingleWalletAccount, setShowAuthFlow, user, authMode, setIsVerificationInProgress, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
84
86
|
const { handleWalletsToConnect } = useHandleWalletsToConnect.useHandleWalletsToConnect();
|
|
85
87
|
const verifyWallet = useVerifyWallet.useVerifyWallet({
|
|
86
88
|
consumeNonce,
|
|
@@ -149,6 +151,19 @@ const useConnectAndSignSplitSteps = () => {
|
|
|
149
151
|
if (!(connectionResult === null || connectionResult === void 0 ? void 0 : connectionResult.address)) {
|
|
150
152
|
return;
|
|
151
153
|
}
|
|
154
|
+
const walletNetwork = yield walletConnector.getNetwork();
|
|
155
|
+
const usesSupportedNetwork = isSupportedNetwork.isSupportedNetwork({
|
|
156
|
+
network: walletNetwork,
|
|
157
|
+
walletConnector,
|
|
158
|
+
});
|
|
159
|
+
const isNetworkValidationEnabledForSignIn = networkValidationMode === 'always' ||
|
|
160
|
+
networkValidationMode === 'sign-in';
|
|
161
|
+
if (!usesSupportedNetwork && isNetworkValidationEnabledForSignIn) {
|
|
162
|
+
if (!isProgrammableNetworkSwitchSupported.isProgrammableNetworkSwitchSupported(walletConnector)) {
|
|
163
|
+
return setView('network-not-supported-manual');
|
|
164
|
+
}
|
|
165
|
+
return setView('network-not-supported');
|
|
166
|
+
}
|
|
152
167
|
yield verifyWallet({
|
|
153
168
|
captchaToken: getCaptchaToken(),
|
|
154
169
|
publicWalletAddress: connectionResult.address,
|
|
@@ -19,6 +19,8 @@ import '../../../../shared/consts/index.js';
|
|
|
19
19
|
import '../../../../events/dynamicEvents.js';
|
|
20
20
|
import { useErrorContext } from '../../../../context/ErrorContext/ErrorContext.js';
|
|
21
21
|
import '@dynamic-labs/multi-wallet';
|
|
22
|
+
import { isProgrammableNetworkSwitchSupported } from '../../../functions/isProgrammableNetworkSwitchSupported/isProgrammableNetworkSwitchSupported.js';
|
|
23
|
+
import { isSupportedNetwork } from '../../../functions/isSupportedNetwork/isSupportedNetwork.js';
|
|
22
24
|
import 'viem/chains';
|
|
23
25
|
import { useHandleWalletsToConnect } from '../../useHandleWalletsToConnect/useHandleWalletsToConnect.js';
|
|
24
26
|
import { useVerifyWallet } from '../../useVerifyWallet/useVerifyWallet.js';
|
|
@@ -76,7 +78,7 @@ const useConnectAndSignSplitSteps = () => {
|
|
|
76
78
|
const { setView, goToInitialView } = useViewContext();
|
|
77
79
|
const { setErrorMessage } = useErrorContext();
|
|
78
80
|
const { getCaptchaToken, engageCaptcha } = useCaptchaContext();
|
|
79
|
-
const { connectWallet, consumeNonce, displaySiweStatement, projectSettings, environmentId, setIsSingleWalletAccount, setShowAuthFlow, user, authMode, setIsVerificationInProgress, } = useInternalDynamicContext();
|
|
81
|
+
const { connectWallet, consumeNonce, displaySiweStatement, projectSettings, environmentId, networkValidationMode, setIsSingleWalletAccount, setShowAuthFlow, user, authMode, setIsVerificationInProgress, } = useInternalDynamicContext();
|
|
80
82
|
const { handleWalletsToConnect } = useHandleWalletsToConnect();
|
|
81
83
|
const verifyWallet = useVerifyWallet({
|
|
82
84
|
consumeNonce,
|
|
@@ -145,6 +147,19 @@ const useConnectAndSignSplitSteps = () => {
|
|
|
145
147
|
if (!(connectionResult === null || connectionResult === void 0 ? void 0 : connectionResult.address)) {
|
|
146
148
|
return;
|
|
147
149
|
}
|
|
150
|
+
const walletNetwork = yield walletConnector.getNetwork();
|
|
151
|
+
const usesSupportedNetwork = isSupportedNetwork({
|
|
152
|
+
network: walletNetwork,
|
|
153
|
+
walletConnector,
|
|
154
|
+
});
|
|
155
|
+
const isNetworkValidationEnabledForSignIn = networkValidationMode === 'always' ||
|
|
156
|
+
networkValidationMode === 'sign-in';
|
|
157
|
+
if (!usesSupportedNetwork && isNetworkValidationEnabledForSignIn) {
|
|
158
|
+
if (!isProgrammableNetworkSwitchSupported(walletConnector)) {
|
|
159
|
+
return setView('network-not-supported-manual');
|
|
160
|
+
}
|
|
161
|
+
return setView('network-not-supported');
|
|
162
|
+
}
|
|
148
163
|
yield verifyWallet({
|
|
149
164
|
captchaToken: getCaptchaToken(),
|
|
150
165
|
publicWalletAddress: connectionResult.address,
|
|
@@ -44,3 +44,4 @@ export { useWalletConnectorNetwork } from './useWalletConnectorNetwork';
|
|
|
44
44
|
export { useInitEmbeddedWalletAuthMethod } from './useInitEmbeddedWalletAuthMethod';
|
|
45
45
|
export { useEmbeddedWalletAuthenticator } from './useEmbeddedWalletAuthenticator';
|
|
46
46
|
export { useViewSettings } from './useViewSettings';
|
|
47
|
+
export { useNetworkNotSupported } from './useNetworkNotSupported';
|
|
@@ -142,7 +142,10 @@ const useAuthLayoutChecks = () => {
|
|
|
142
142
|
privacyPolicyUrl ||
|
|
143
143
|
customPrivacyPolicy ||
|
|
144
144
|
customTermsOfServices))));
|
|
145
|
-
const showDynamicFooter = view.type === 'login-with-email-
|
|
145
|
+
const showDynamicFooter = view.type === 'login-with-email-or-wallet' ||
|
|
146
|
+
view.type === 'login-with-email-or-wallet-full-wallet-list' ||
|
|
147
|
+
view.type === 'login-with-wallet-only' ||
|
|
148
|
+
view.type === 'login-with-email-verification' ||
|
|
146
149
|
view.type === 'verify-email' ||
|
|
147
150
|
view.type === 'pending-connect' ||
|
|
148
151
|
view.type === 'wallet-group' ||
|
|
@@ -176,9 +179,11 @@ const useAuthLayoutChecks = () => {
|
|
|
176
179
|
view.type === 'farcaster-connect-view' ||
|
|
177
180
|
(view.type === 'merge-user-accounts' && !user);
|
|
178
181
|
const showDefaultFooter = !showConnectedWalletProgress && !showDynamicFooter && !showToSFooter;
|
|
182
|
+
const shouldHideDynamicFooterSeparator = showDynamicFooter && showToSFooter;
|
|
179
183
|
return {
|
|
180
184
|
displayBorderBelowHeader,
|
|
181
185
|
isWalletListTypeView,
|
|
186
|
+
shouldHideDynamicFooterSeparator,
|
|
182
187
|
showBackButton,
|
|
183
188
|
showCloseButton,
|
|
184
189
|
showConnectedWalletProgress,
|
|
@@ -138,7 +138,10 @@ const useAuthLayoutChecks = () => {
|
|
|
138
138
|
privacyPolicyUrl ||
|
|
139
139
|
customPrivacyPolicy ||
|
|
140
140
|
customTermsOfServices))));
|
|
141
|
-
const showDynamicFooter = view.type === 'login-with-email-
|
|
141
|
+
const showDynamicFooter = view.type === 'login-with-email-or-wallet' ||
|
|
142
|
+
view.type === 'login-with-email-or-wallet-full-wallet-list' ||
|
|
143
|
+
view.type === 'login-with-wallet-only' ||
|
|
144
|
+
view.type === 'login-with-email-verification' ||
|
|
142
145
|
view.type === 'verify-email' ||
|
|
143
146
|
view.type === 'pending-connect' ||
|
|
144
147
|
view.type === 'wallet-group' ||
|
|
@@ -172,9 +175,11 @@ const useAuthLayoutChecks = () => {
|
|
|
172
175
|
view.type === 'farcaster-connect-view' ||
|
|
173
176
|
(view.type === 'merge-user-accounts' && !user);
|
|
174
177
|
const showDefaultFooter = !showConnectedWalletProgress && !showDynamicFooter && !showToSFooter;
|
|
178
|
+
const shouldHideDynamicFooterSeparator = showDynamicFooter && showToSFooter;
|
|
175
179
|
return {
|
|
176
180
|
displayBorderBelowHeader,
|
|
177
181
|
isWalletListTypeView,
|
|
182
|
+
shouldHideDynamicFooterSeparator,
|
|
178
183
|
showBackButton,
|
|
179
184
|
showCloseButton,
|
|
180
185
|
showConnectedWalletProgress,
|
|
@@ -30,7 +30,7 @@ var isConnectOnly = require('../authenticationHooks/helpers/isConnectOnly.cjs');
|
|
|
30
30
|
var dynamicEvents = require('../../../events/dynamicEvents.cjs');
|
|
31
31
|
var updateUserWalletsFromConnectedWallets = require('./updateUserWalletsFromConnectedWallets/updateUserWalletsFromConnectedWallets.cjs');
|
|
32
32
|
|
|
33
|
-
const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, walletConnectorOptions, onDisconnect, onBeforeConnectSuccessConfirmation,
|
|
33
|
+
const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, walletConnectorOptions, onDisconnect, onBeforeConnectSuccessConfirmation, setShowAuthFlow, isBridgeFlow, setIsVerificationInProgress, user, }) => {
|
|
34
34
|
const [connectedWalletsInfo, setConnectedWalletsInfo, removeConnectedWalletsInfo,] = useLocalStorage.useLocalStorage(localStorage.CONNECTED_WALLETS_INFO, []);
|
|
35
35
|
const [connectedWallets, _setConnectedWallets] = React.useState([]);
|
|
36
36
|
/**
|
|
@@ -51,10 +51,7 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
51
51
|
yield (walletToDisconnect === null || walletToDisconnect === void 0 ? void 0 : walletToDisconnect.connector.endSession());
|
|
52
52
|
const updatedConnectedWalletsInfo = connectedWalletsInfo.filter((wallet) => wallet.id !== walletId);
|
|
53
53
|
setConnectedWalletsInfo(updatedConnectedWalletsInfo);
|
|
54
|
-
|
|
55
|
-
removeIsFullyConnected();
|
|
56
|
-
}
|
|
57
|
-
onDisconnect(updatedConnectedWalletsInfo, walletToDisconnect);
|
|
54
|
+
onDisconnect(walletToDisconnect);
|
|
58
55
|
if (walletId !== primaryWalletId) {
|
|
59
56
|
return;
|
|
60
57
|
}
|
|
@@ -72,7 +69,6 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
72
69
|
isBridgeFlow,
|
|
73
70
|
onDisconnect,
|
|
74
71
|
primaryWalletId,
|
|
75
|
-
removeIsFullyConnected,
|
|
76
72
|
setConnectedWalletsInfo,
|
|
77
73
|
setPrimaryWalletId,
|
|
78
74
|
]);
|
|
@@ -16,9 +16,8 @@ export type UseConnectWalletProps = {
|
|
|
16
16
|
primaryWalletId: string | undefined;
|
|
17
17
|
setPrimaryWalletId: (walletId: string) => void;
|
|
18
18
|
walletConnectorOptions: WalletOption[];
|
|
19
|
-
onDisconnect: (
|
|
19
|
+
onDisconnect: (wallet?: Wallet) => void;
|
|
20
20
|
onBeforeConnectSuccessConfirmation: OnBeforeConnectSuccessConfirmation | undefined;
|
|
21
|
-
removeIsFullyConnected: () => void;
|
|
22
21
|
setShowAuthFlow: SetShowAuthFlow;
|
|
23
22
|
isBridgeFlow: boolean;
|
|
24
23
|
setIsVerificationInProgress: (newValue: boolean, checkWasSetOnDisable?: boolean | undefined) => void;
|
|
@@ -42,5 +41,5 @@ type UseConnectWalletValue = {
|
|
|
42
41
|
removeConnectedWalletsInfo: () => void;
|
|
43
42
|
disconnectWallet: (walletId: string) => Promise<void>;
|
|
44
43
|
};
|
|
45
|
-
export declare const useConnectWallet: ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, walletConnectorOptions, onDisconnect, onBeforeConnectSuccessConfirmation,
|
|
44
|
+
export declare const useConnectWallet: ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, walletConnectorOptions, onDisconnect, onBeforeConnectSuccessConfirmation, setShowAuthFlow, isBridgeFlow, setIsVerificationInProgress, user, }: UseConnectWalletProps) => UseConnectWalletValue;
|
|
46
45
|
export {};
|
|
@@ -26,7 +26,7 @@ import { isConnectOnly } from '../authenticationHooks/helpers/isConnectOnly.js';
|
|
|
26
26
|
import { dynamicEvents } from '../../../events/dynamicEvents.js';
|
|
27
27
|
import { updateUserWalletsFromConnectedWallets } from './updateUserWalletsFromConnectedWallets/updateUserWalletsFromConnectedWallets.js';
|
|
28
28
|
|
|
29
|
-
const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, walletConnectorOptions, onDisconnect, onBeforeConnectSuccessConfirmation,
|
|
29
|
+
const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, walletConnectorOptions, onDisconnect, onBeforeConnectSuccessConfirmation, setShowAuthFlow, isBridgeFlow, setIsVerificationInProgress, user, }) => {
|
|
30
30
|
const [connectedWalletsInfo, setConnectedWalletsInfo, removeConnectedWalletsInfo,] = useLocalStorage(CONNECTED_WALLETS_INFO, []);
|
|
31
31
|
const [connectedWallets, _setConnectedWallets] = useState([]);
|
|
32
32
|
/**
|
|
@@ -47,10 +47,7 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
47
47
|
yield (walletToDisconnect === null || walletToDisconnect === void 0 ? void 0 : walletToDisconnect.connector.endSession());
|
|
48
48
|
const updatedConnectedWalletsInfo = connectedWalletsInfo.filter((wallet) => wallet.id !== walletId);
|
|
49
49
|
setConnectedWalletsInfo(updatedConnectedWalletsInfo);
|
|
50
|
-
|
|
51
|
-
removeIsFullyConnected();
|
|
52
|
-
}
|
|
53
|
-
onDisconnect(updatedConnectedWalletsInfo, walletToDisconnect);
|
|
50
|
+
onDisconnect(walletToDisconnect);
|
|
54
51
|
if (walletId !== primaryWalletId) {
|
|
55
52
|
return;
|
|
56
53
|
}
|
|
@@ -68,7 +65,6 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
68
65
|
isBridgeFlow,
|
|
69
66
|
onDisconnect,
|
|
70
67
|
primaryWalletId,
|
|
71
|
-
removeIsFullyConnected,
|
|
72
68
|
setConnectedWalletsInfo,
|
|
73
69
|
setPrimaryWalletId,
|
|
74
70
|
]);
|
|
@@ -72,11 +72,11 @@ require('../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCa
|
|
|
72
72
|
var useInternalDynamicContext = require('../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.cjs');
|
|
73
73
|
|
|
74
74
|
const useHandleWalletsToConnect = () => {
|
|
75
|
-
const { bridgeChainsToConnect,
|
|
75
|
+
const { bridgeChainsToConnect, setShowAuthFlow, bridgeOnboardingCompleted, setBridgeOnboardingCompleted, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
76
76
|
const { setView, goToInitialView } = ViewContext.useViewContext();
|
|
77
77
|
const handleWalletsToConnect = ({ walletConnector, }) => {
|
|
78
78
|
if (!bridgeChainsToConnect) {
|
|
79
|
-
|
|
79
|
+
setBridgeOnboardingCompleted(true);
|
|
80
80
|
setShowAuthFlow(false);
|
|
81
81
|
return;
|
|
82
82
|
}
|
|
@@ -90,11 +90,10 @@ const useHandleWalletsToConnect = () => {
|
|
|
90
90
|
return goToInitialView();
|
|
91
91
|
}
|
|
92
92
|
const restOfWallets = bridgeChainsToConnect.filter((wallet) => wallet.chain !== (walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.connectedChain));
|
|
93
|
-
setBridgeChainsToConnect(restOfWallets);
|
|
94
93
|
const allWalletsConnected = restOfWallets.length === 0;
|
|
95
94
|
if (allWalletsConnected) {
|
|
96
|
-
if (!
|
|
97
|
-
|
|
95
|
+
if (!bridgeOnboardingCompleted) {
|
|
96
|
+
setBridgeOnboardingCompleted(true);
|
|
98
97
|
setView('bridge-summary');
|
|
99
98
|
}
|
|
100
99
|
else {
|
|
@@ -68,11 +68,11 @@ import '../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCar
|
|
|
68
68
|
import { useInternalDynamicContext } from '../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.js';
|
|
69
69
|
|
|
70
70
|
const useHandleWalletsToConnect = () => {
|
|
71
|
-
const { bridgeChainsToConnect,
|
|
71
|
+
const { bridgeChainsToConnect, setShowAuthFlow, bridgeOnboardingCompleted, setBridgeOnboardingCompleted, } = useInternalDynamicContext();
|
|
72
72
|
const { setView, goToInitialView } = useViewContext();
|
|
73
73
|
const handleWalletsToConnect = ({ walletConnector, }) => {
|
|
74
74
|
if (!bridgeChainsToConnect) {
|
|
75
|
-
|
|
75
|
+
setBridgeOnboardingCompleted(true);
|
|
76
76
|
setShowAuthFlow(false);
|
|
77
77
|
return;
|
|
78
78
|
}
|
|
@@ -86,11 +86,10 @@ const useHandleWalletsToConnect = () => {
|
|
|
86
86
|
return goToInitialView();
|
|
87
87
|
}
|
|
88
88
|
const restOfWallets = bridgeChainsToConnect.filter((wallet) => wallet.chain !== (walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.connectedChain));
|
|
89
|
-
setBridgeChainsToConnect(restOfWallets);
|
|
90
89
|
const allWalletsConnected = restOfWallets.length === 0;
|
|
91
90
|
if (allWalletsConnected) {
|
|
92
|
-
if (!
|
|
93
|
-
|
|
91
|
+
if (!bridgeOnboardingCompleted) {
|
|
92
|
+
setBridgeOnboardingCompleted(true);
|
|
94
93
|
setView('bridge-summary');
|
|
95
94
|
}
|
|
96
95
|
else {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useNetworkNotSupported } from './useNetworkNotSupported';
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var useWalletConnectorNetwork = require('../useWalletConnectorNetwork/useWalletConnectorNetwork.cjs');
|
|
7
|
+
require('@dynamic-labs/wallet-connector-core');
|
|
8
|
+
require('@dynamic-labs/sdk-api');
|
|
9
|
+
require('../../../shared/logger.cjs');
|
|
10
|
+
require('@dynamic-labs/iconic');
|
|
11
|
+
require('react/jsx-runtime');
|
|
12
|
+
require('../../../context/ViewContext/ViewContext.cjs');
|
|
13
|
+
require('@dynamic-labs/wallet-book');
|
|
14
|
+
require('../../constants/colors.cjs');
|
|
15
|
+
require('../../constants/values.cjs');
|
|
16
|
+
require('../../../shared/utils/classes/storage/localStorage.cjs');
|
|
17
|
+
require('viem');
|
|
18
|
+
require('@dynamic-labs/utils');
|
|
19
|
+
require('../../../shared/consts/index.cjs');
|
|
20
|
+
require('../../../../../_virtual/_tslib.cjs');
|
|
21
|
+
require('@dynamic-labs/multi-wallet');
|
|
22
|
+
var isSupportedNetwork = require('../../functions/isSupportedNetwork/isSupportedNetwork.cjs');
|
|
23
|
+
require('viem/chains');
|
|
24
|
+
var useConnectAndSign = require('../authenticationHooks/useConnectAndSign/useConnectAndSign.cjs');
|
|
25
|
+
require('../../../context/DynamicContext/DynamicContext.cjs');
|
|
26
|
+
require('../../../events/dynamicEvents.cjs');
|
|
27
|
+
require('react-dom');
|
|
28
|
+
require('../../../config/ApiEndpoint.cjs');
|
|
29
|
+
require('../../../context/ThemeContext/ThemeContext.cjs');
|
|
30
|
+
require('@dynamic-labs/types');
|
|
31
|
+
require('../../../context/ErrorContext/ErrorContext.cjs');
|
|
32
|
+
require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
33
|
+
require('yup');
|
|
34
|
+
require('react-i18next');
|
|
35
|
+
require('../../../context/MockContext/MockContext.cjs');
|
|
36
|
+
require('../useUserUpdateRequest/useUpdateUser/useUpdateUser.cjs');
|
|
37
|
+
require('../../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
|
|
38
|
+
require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
39
|
+
require('@dynamic-labs/rpc-providers');
|
|
40
|
+
require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
41
|
+
require('../../../components/Alert/Alert.cjs');
|
|
42
|
+
require('../../../components/ShadowDOM/ShadowDOM.cjs');
|
|
43
|
+
require('../../../components/IconButton/IconButton.cjs');
|
|
44
|
+
require('../../../components/InlineWidget/InlineWidget.cjs');
|
|
45
|
+
require('../../../components/IsBrowser/IsBrowser.cjs');
|
|
46
|
+
require('../../../components/MenuList/Dropdown/Dropdown.cjs');
|
|
47
|
+
require('../../../components/Transition/ZoomTransition/ZoomTransition.cjs');
|
|
48
|
+
require('../../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs');
|
|
49
|
+
require('../../../components/Transition/OpacityTransition/OpacityTransition.cjs');
|
|
50
|
+
require('../../../components/Popper/Popper/Popper.cjs');
|
|
51
|
+
require('../../../components/Popper/PopperContext/PopperContext.cjs');
|
|
52
|
+
require('react-focus-lock');
|
|
53
|
+
require('qrcode');
|
|
54
|
+
require('formik');
|
|
55
|
+
require('i18next');
|
|
56
|
+
require('../../../components/OverlayCard/OverlayCard.context.cjs');
|
|
57
|
+
require('../../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs');
|
|
58
|
+
require('../../../context/PasskeyContext/PasskeyContext.cjs');
|
|
59
|
+
require('../../../views/WalletList/WalletList.cjs');
|
|
60
|
+
require('../../../context/EmailVerificationContext/EmailVerificationContext.cjs');
|
|
61
|
+
require('@hcaptcha/react-hcaptcha');
|
|
62
|
+
require('../../../context/CaptchaContext/CaptchaContext.cjs');
|
|
63
|
+
require('../../../context/LoadingContext/LoadingContext.cjs');
|
|
64
|
+
require('../../../context/SocialRedirectContext/SocialRedirectContext.cjs');
|
|
65
|
+
require('../../../context/WalletGroupContext/WalletGroupContext.cjs');
|
|
66
|
+
require('../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
|
|
67
|
+
require('../../../context/FooterAnimationContext/index.cjs');
|
|
68
|
+
require('../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
|
|
69
|
+
require('../../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
|
|
70
|
+
require('../../../components/UserProfile/parts/UserProfileField/components/VerifiedEmailIcon/VerifiedEmailIcon.cjs');
|
|
71
|
+
require('@dynamic-labs/viem-utils');
|
|
72
|
+
require('../../../views/TransactionConfirmationView/helpers/transactionErrorMessage.cjs');
|
|
73
|
+
require('../useTransactionWithGasPrice/useTransactionWithGasPrice.cjs');
|
|
74
|
+
require('../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
|
|
75
|
+
var useInternalDynamicContext = require('../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.cjs');
|
|
76
|
+
|
|
77
|
+
const useNetworkNotSupported = () => {
|
|
78
|
+
const { selectedWalletConnector: walletConnector, setShowAuthFlow, bridgeChainsToConnect, bridgeOnboardingCompleted, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
79
|
+
const { network: walletConnectorNetwork } = useWalletConnectorNetwork.useWalletConnectorNetwork(walletConnector);
|
|
80
|
+
const finishConnectAndSign = useConnectAndSign.useConnectAndSign({
|
|
81
|
+
shouldCallCallback: false,
|
|
82
|
+
shouldUpdateWallets: Boolean(bridgeChainsToConnect === null || bridgeChainsToConnect === void 0 ? void 0 : bridgeChainsToConnect.length),
|
|
83
|
+
});
|
|
84
|
+
// Finishes auth flow when wallet switches to proper network
|
|
85
|
+
React.useEffect(() => {
|
|
86
|
+
if (!isSupportedNetwork.isSupportedNetwork({ network: walletConnectorNetwork, walletConnector })) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
finishConnectAndSign({
|
|
90
|
+
walletConnector: walletConnector,
|
|
91
|
+
});
|
|
92
|
+
// there are two scenarios here, one in not connected state and the other one in connected state.
|
|
93
|
+
// previously we were calling setShowAuthFlow(false) in useHandleWalletsToConnect.
|
|
94
|
+
// now, we don't call it in network-not-supported view, so we need to handle that scenario and close modal here
|
|
95
|
+
// this should be gone, once we're done with the useConnectAndSign hook refactor.
|
|
96
|
+
// TODO: https://linear.app/dynamic-labs/issue/QNTM-117/break-useconnectandsign-hook-to-small-parts
|
|
97
|
+
if (bridgeOnboardingCompleted) {
|
|
98
|
+
setShowAuthFlow(false);
|
|
99
|
+
}
|
|
100
|
+
}, [walletConnectorNetwork, setShowAuthFlow, bridgeOnboardingCompleted]);
|
|
101
|
+
return { currentNetwork: walletConnectorNetwork };
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
exports.useNetworkNotSupported = useNetworkNotSupported;
|