@dynamic-labs/sdk-react-core 0.17.0-RC.11 → 0.17.0-RC.12
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 +8 -0
- package/package.cjs +2 -2
- package/package.js +2 -2
- package/package.json +8 -8
- package/src/index.cjs +5 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -1
- package/src/lib/components/NetworkPicker/NetworkPicker.cjs +4 -1
- package/src/lib/components/NetworkPicker/NetworkPicker.js +4 -1
- package/src/lib/components/NetworkPicker/components/EvmNetworkControl/EvmNetworkControl.cjs +5 -5
- package/src/lib/components/NetworkPicker/components/EvmNetworkControl/EvmNetworkControl.js +5 -5
- package/src/lib/utils/functions/index.d.ts +1 -0
- package/src/lib/utils/functions/isNetworkUnsupported/index.d.ts +1 -0
- package/src/lib/utils/functions/isNetworkUnsupported/isNetworkUnsupported.cjs +12 -0
- package/src/lib/utils/functions/isNetworkUnsupported/isNetworkUnsupported.d.ts +2 -0
- package/src/lib/utils/functions/isNetworkUnsupported/isNetworkUnsupported.js +8 -0
- package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.cjs +25 -2
- package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.js +25 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
|
|
2
|
+
## [0.17.0-RC.12](https://github.com/dynamic-labs/DynamicAuth/compare/v0.17.0-RC.11...v0.17.0-RC.12) (2023-05-09)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* allow opening network picker when unsupported network and only one network enabled ([#2061](https://github.com/dynamic-labs/DynamicAuth/issues/2061)) ([486607f](https://github.com/dynamic-labs/DynamicAuth/commit/486607f8bb2666749ce39f18cf2368c86a78f74f))
|
|
8
|
+
* **DynamicWagmiConnector:** prevent disconnect when WC is not present ([#2063](https://github.com/dynamic-labs/DynamicAuth/issues/2063)) ([ef93623](https://github.com/dynamic-labs/DynamicAuth/commit/ef93623fb68b63a9e89a5958eb87bbddedd15fb6))
|
|
9
|
+
|
|
2
10
|
## [0.17.0-RC.11](https://github.com/dynamic-labs/DynamicAuth/compare/v0.17.0-RC.10...v0.17.0-RC.11) (2023-05-08)
|
|
3
11
|
|
|
4
12
|
|
package/package.cjs
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var version = "0.17.0-RC.
|
|
5
|
+
var version = "0.17.0-RC.12";
|
|
6
6
|
var dependencies = {
|
|
7
7
|
"react-focus-lock": "^2.9.2",
|
|
8
8
|
"@dynamic-labs/iconic": "^0.1.19",
|
|
9
|
-
"@dynamic-labs/sdk-api": "0.0.
|
|
9
|
+
"@dynamic-labs/sdk-api": "0.0.189",
|
|
10
10
|
"@dynamic-labs/wallet-book": "^0.0.14",
|
|
11
11
|
"@hcaptcha/react-hcaptcha": "~1.4.4",
|
|
12
12
|
"country-list": "^2.3.0",
|
package/package.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
var version = "0.17.0-RC.
|
|
1
|
+
var version = "0.17.0-RC.12";
|
|
2
2
|
var dependencies = {
|
|
3
3
|
"react-focus-lock": "^2.9.2",
|
|
4
4
|
"@dynamic-labs/iconic": "^0.1.19",
|
|
5
|
-
"@dynamic-labs/sdk-api": "0.0.
|
|
5
|
+
"@dynamic-labs/sdk-api": "0.0.189",
|
|
6
6
|
"@dynamic-labs/wallet-book": "^0.0.14",
|
|
7
7
|
"@hcaptcha/react-hcaptcha": "~1.4.4",
|
|
8
8
|
"country-list": "^2.3.0",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/sdk-react-core",
|
|
3
|
-
"version": "0.17.0-RC.
|
|
3
|
+
"version": "0.17.0-RC.12",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/dynamic-labs/DynamicAuth.git",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"react-focus-lock": "^2.9.2",
|
|
11
11
|
"@dynamic-labs/iconic": "^0.1.19",
|
|
12
|
-
"@dynamic-labs/sdk-api": "0.0.
|
|
12
|
+
"@dynamic-labs/sdk-api": "0.0.189",
|
|
13
13
|
"@dynamic-labs/wallet-book": "^0.0.14",
|
|
14
14
|
"@hcaptcha/react-hcaptcha": "~1.4.4",
|
|
15
15
|
"country-list": "^2.3.0",
|
|
@@ -17,12 +17,12 @@
|
|
|
17
17
|
"formik": "^2.2.9",
|
|
18
18
|
"qrcode": "1.5.1",
|
|
19
19
|
"ethers": "^5.7.2",
|
|
20
|
-
"@dynamic-labs/logger": "0.17.0-RC.
|
|
21
|
-
"@dynamic-labs/multi-wallet": "0.17.0-RC.
|
|
22
|
-
"@dynamic-labs/rpc-providers": "0.17.0-RC.
|
|
23
|
-
"@dynamic-labs/types": "0.17.0-RC.
|
|
24
|
-
"@dynamic-labs/utils": "0.17.0-RC.
|
|
25
|
-
"@dynamic-labs/wallet-connector-core": "0.17.0-RC.
|
|
20
|
+
"@dynamic-labs/logger": "0.17.0-RC.12",
|
|
21
|
+
"@dynamic-labs/multi-wallet": "0.17.0-RC.12",
|
|
22
|
+
"@dynamic-labs/rpc-providers": "0.17.0-RC.12",
|
|
23
|
+
"@dynamic-labs/types": "0.17.0-RC.12",
|
|
24
|
+
"@dynamic-labs/utils": "0.17.0-RC.12",
|
|
25
|
+
"@dynamic-labs/wallet-connector-core": "0.17.0-RC.12"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"semver": "^7.3.8"
|
package/src/index.cjs
CHANGED
|
@@ -72,7 +72,7 @@ require('./lib/utils/constants/colors.cjs');
|
|
|
72
72
|
require('@dynamic-labs/multi-wallet');
|
|
73
73
|
require('@dynamic-labs/utils');
|
|
74
74
|
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
75
|
-
require('@dynamic-labs/sdk-api');
|
|
75
|
+
var sdkApi = require('@dynamic-labs/sdk-api');
|
|
76
76
|
var ShadowDOM = require('./lib/components/ShadowDOM/ShadowDOM.cjs');
|
|
77
77
|
require('./lib/context/ThemeContext/ThemeContext.cjs');
|
|
78
78
|
require('react-dom');
|
|
@@ -187,6 +187,10 @@ Object.defineProperty(exports, 'normalizeWalletName', {
|
|
|
187
187
|
enumerable: true,
|
|
188
188
|
get: function () { return walletConnectorCore.normalizeWalletName; }
|
|
189
189
|
});
|
|
190
|
+
Object.defineProperty(exports, 'DynamicJwtFromJSON', {
|
|
191
|
+
enumerable: true,
|
|
192
|
+
get: function () { return sdkApi.DynamicJwtFromJSON; }
|
|
193
|
+
});
|
|
190
194
|
exports.ShadowDOM = ShadowDOM.ShadowDOM;
|
|
191
195
|
exports.isSameWalletName = isSameWalletName.isSameWalletName;
|
|
192
196
|
exports.useWalletItemActions = useWalletItemActions.useWalletItemActions;
|
package/src/index.d.ts
CHANGED
|
@@ -27,3 +27,4 @@ export { useUserUpdateRequest } from './lib/utils/hooks/useUserUpdateRequest/use
|
|
|
27
27
|
export type { UpdateUserFieldsArg } from './lib/utils/hooks/useUserUpdateRequest/useUserUpdateRequest';
|
|
28
28
|
export type { VerifyEmailCallback } from './lib/utils/hooks/authenticationHooks/useEmailVerificationRequest';
|
|
29
29
|
export { useEmailVerificationRequest } from './lib/utils/hooks/authenticationHooks/useEmailVerificationRequest';
|
|
30
|
+
export { type DynamicJwt, DynamicJwtFromJSON } from '@dynamic-labs/sdk-api';
|
package/src/index.js
CHANGED
|
@@ -68,7 +68,7 @@ import './lib/utils/constants/colors.js';
|
|
|
68
68
|
import '@dynamic-labs/multi-wallet';
|
|
69
69
|
import '@dynamic-labs/utils';
|
|
70
70
|
export { normalizeWalletName } from '@dynamic-labs/wallet-connector-core';
|
|
71
|
-
|
|
71
|
+
export { DynamicJwtFromJSON } from '@dynamic-labs/sdk-api';
|
|
72
72
|
export { ShadowDOM } from './lib/components/ShadowDOM/ShadowDOM.js';
|
|
73
73
|
import './lib/context/ThemeContext/ThemeContext.js';
|
|
74
74
|
import 'react-dom';
|
|
@@ -17,6 +17,8 @@ var index = require('../../shared/utils/hooks/useOnClickOutside/index.cjs');
|
|
|
17
17
|
require('../../shared/consts/index.cjs');
|
|
18
18
|
var useInternalDynamicContext = require('../../context/DynamicContext/useInternalDynamicContext.cjs');
|
|
19
19
|
var classNames = require('../../utils/functions/classNames/classNames.cjs');
|
|
20
|
+
require('@dynamic-labs/multi-wallet');
|
|
21
|
+
var isNetworkUnsupported = require('../../utils/functions/isNetworkUnsupported/isNetworkUnsupported.cjs');
|
|
20
22
|
var NetworkControl = require('./components/NetworkControl/NetworkControl.cjs');
|
|
21
23
|
var ActionList = require('./components/ActionList/ActionList.cjs');
|
|
22
24
|
var NetworkAction = require('./components/NetworkAction/NetworkAction.cjs');
|
|
@@ -25,6 +27,7 @@ const NetworkPicker = ({ activeClassName = '', buttonClassName = '', checkboxCla
|
|
|
25
27
|
const pickerRef = React.useRef(null);
|
|
26
28
|
const [newNetworkId, setNewNetworkId] = React.useState(undefined);
|
|
27
29
|
const { loadingNetwork, network, setNetwork } = useInternalDynamicContext.useInternalDynamicContext();
|
|
30
|
+
const shouldAllowOpenDropdown = isNetworkUnsupported.isNetworkUnsupported(network, evmNetworks) || (evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.length) > 1;
|
|
28
31
|
index.useOnClickOutside(pickerRef, () => {
|
|
29
32
|
if (isNetworkPickerOpen) {
|
|
30
33
|
setIsNetworkPickerOpen(false);
|
|
@@ -49,7 +52,7 @@ const NetworkPicker = ({ activeClassName = '', buttonClassName = '', checkboxCla
|
|
|
49
52
|
setIsNetworkPickerOpen(false);
|
|
50
53
|
}
|
|
51
54
|
});
|
|
52
|
-
return (jsxRuntime.jsxs("div", Object.assign({ className: classNames.classNames('non-widget-network-picker', mainClassName), ref: pickerRef }, { children: [jsxRuntime.jsx(NetworkControl.NetworkControl, { evmNetworks: evmNetworks, activeClassName: activeClassName, network: network, loading: loadingNetwork, isOpen: isNetworkPickerOpen, setIsOpen: setIsNetworkPickerOpen, walletConnector: connector, showNetworkName: showNetworkName, buttonClassName: buttonClassName }),
|
|
55
|
+
return (jsxRuntime.jsxs("div", Object.assign({ className: classNames.classNames('non-widget-network-picker', mainClassName), ref: pickerRef }, { children: [jsxRuntime.jsx(NetworkControl.NetworkControl, { evmNetworks: evmNetworks, activeClassName: activeClassName, network: network, loading: loadingNetwork, isOpen: isNetworkPickerOpen, setIsOpen: setIsNetworkPickerOpen, walletConnector: connector, showNetworkName: showNetworkName, buttonClassName: buttonClassName }), shouldAllowOpenDropdown && (jsxRuntime.jsx(ActionList.ActionList, Object.assign({ className: listClassName, title: 'Select network', isOpen: isNetworkPickerOpen, setIsOpen: setIsNetworkPickerOpen }, { children: jsxRuntime.jsx("div", Object.assign({ className: 'network-picker__dropdown' }, { children: evmNetworks.map(({ name, networkId, vanityName, iconUrls }) => (jsxRuntime.jsx(NetworkAction.NetworkAction, { iconUrl: iconUrls === null || iconUrls === void 0 ? void 0 : iconUrls[0], networkId: networkId, networkName: vanityName || name, network: network, onClick: handleNetworkChange, checkboxClassName: checkboxClassName, newNetworkId: newNetworkId }, networkId))) })) })))] })));
|
|
53
56
|
};
|
|
54
57
|
|
|
55
58
|
exports.NetworkPicker = NetworkPicker;
|
|
@@ -13,6 +13,8 @@ import { useOnClickOutside } from '../../shared/utils/hooks/useOnClickOutside/in
|
|
|
13
13
|
import '../../shared/consts/index.js';
|
|
14
14
|
import { useInternalDynamicContext } from '../../context/DynamicContext/useInternalDynamicContext.js';
|
|
15
15
|
import { classNames } from '../../utils/functions/classNames/classNames.js';
|
|
16
|
+
import '@dynamic-labs/multi-wallet';
|
|
17
|
+
import { isNetworkUnsupported } from '../../utils/functions/isNetworkUnsupported/isNetworkUnsupported.js';
|
|
16
18
|
import { NetworkControl } from './components/NetworkControl/NetworkControl.js';
|
|
17
19
|
import { ActionList } from './components/ActionList/ActionList.js';
|
|
18
20
|
import { NetworkAction } from './components/NetworkAction/NetworkAction.js';
|
|
@@ -21,6 +23,7 @@ const NetworkPicker = ({ activeClassName = '', buttonClassName = '', checkboxCla
|
|
|
21
23
|
const pickerRef = useRef(null);
|
|
22
24
|
const [newNetworkId, setNewNetworkId] = useState(undefined);
|
|
23
25
|
const { loadingNetwork, network, setNetwork } = useInternalDynamicContext();
|
|
26
|
+
const shouldAllowOpenDropdown = isNetworkUnsupported(network, evmNetworks) || (evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.length) > 1;
|
|
24
27
|
useOnClickOutside(pickerRef, () => {
|
|
25
28
|
if (isNetworkPickerOpen) {
|
|
26
29
|
setIsNetworkPickerOpen(false);
|
|
@@ -45,7 +48,7 @@ const NetworkPicker = ({ activeClassName = '', buttonClassName = '', checkboxCla
|
|
|
45
48
|
setIsNetworkPickerOpen(false);
|
|
46
49
|
}
|
|
47
50
|
});
|
|
48
|
-
return (jsxs("div", Object.assign({ className: classNames('non-widget-network-picker', mainClassName), ref: pickerRef }, { children: [jsx(NetworkControl, { evmNetworks: evmNetworks, activeClassName: activeClassName, network: network, loading: loadingNetwork, isOpen: isNetworkPickerOpen, setIsOpen: setIsNetworkPickerOpen, walletConnector: connector, showNetworkName: showNetworkName, buttonClassName: buttonClassName }),
|
|
51
|
+
return (jsxs("div", Object.assign({ className: classNames('non-widget-network-picker', mainClassName), ref: pickerRef }, { children: [jsx(NetworkControl, { evmNetworks: evmNetworks, activeClassName: activeClassName, network: network, loading: loadingNetwork, isOpen: isNetworkPickerOpen, setIsOpen: setIsNetworkPickerOpen, walletConnector: connector, showNetworkName: showNetworkName, buttonClassName: buttonClassName }), shouldAllowOpenDropdown && (jsx(ActionList, Object.assign({ className: listClassName, title: 'Select network', isOpen: isNetworkPickerOpen, setIsOpen: setIsNetworkPickerOpen }, { children: jsx("div", Object.assign({ className: 'network-picker__dropdown' }, { children: evmNetworks.map(({ name, networkId, vanityName, iconUrls }) => (jsx(NetworkAction, { iconUrl: iconUrls === null || iconUrls === void 0 ? void 0 : iconUrls[0], networkId: networkId, networkName: vanityName || name, network: network, onClick: handleNetworkChange, checkboxClassName: checkboxClassName, newNetworkId: newNetworkId }, networkId))) })) })))] })));
|
|
49
52
|
};
|
|
50
53
|
|
|
51
54
|
export { NetworkPicker };
|
|
@@ -39,7 +39,7 @@ var UnsupportedNetwork = require('../UnsupportedNetwork/UnsupportedNetwork.cjs')
|
|
|
39
39
|
|
|
40
40
|
const EvmNetworkControl = ({ evmNetworks, className = '', activeClassName = '', network, walletConnector, isOpen, setIsOpen, showNetworkName = false, }) => {
|
|
41
41
|
var _a, _b;
|
|
42
|
-
const
|
|
42
|
+
const currentEvmNetwork = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.find((element) => network && element.chainId === utils.parseChainId(network));
|
|
43
43
|
if (evmNetworks && !evmNetworks.length) {
|
|
44
44
|
return (jsxRuntime.jsx("div", Object.assign({ "data-testid": 'EvmNetworkControl', className: classNames.classNames('evm-network-control__container evm-network-control__container--error', className) }, { children: jsxRuntime.jsx(UnsupportedNetwork.UnsupportedNetwork, { showMsg: showNetworkName }) })));
|
|
45
45
|
}
|
|
@@ -51,20 +51,20 @@ const EvmNetworkControl = ({ evmNetworks, className = '', activeClassName = '',
|
|
|
51
51
|
[activeClassName]: isOpen,
|
|
52
52
|
'evm-network-control__container': Boolean(walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.supportsNetworkSwitching()),
|
|
53
53
|
});
|
|
54
|
-
if (!
|
|
54
|
+
if (!currentEvmNetwork) {
|
|
55
55
|
return (jsxRuntime.jsxs("button", Object.assign({ "data-testid": 'EvmNetworkControl', type: 'button', onClick: () => setIsOpen(!isOpen), className: unsupportedNetworkClassName }, { children: [jsxRuntime.jsx(UnsupportedNetwork.UnsupportedNetwork, { showMsg: showNetworkName }), jsxRuntime.jsx(Icon.Icon, Object.assign({ color: 'text-primary', size: 'small', className: classNames.classNames('evm-network-control__arrow-icon', {
|
|
56
56
|
'evm-network-control__arrow-icon--active': isOpen,
|
|
57
57
|
}) }, { children: jsxRuntime.jsx(stroke.ReactComponent, {}) }))] })));
|
|
58
58
|
}
|
|
59
59
|
return (jsxRuntime.jsx("div", Object.assign({ "data-testid": 'EvmNetworkControl', onClick: () => network && setIsOpen(!isOpen), className: classNames.classNames('evm-network-control__container', {
|
|
60
60
|
[activeClassName]: isOpen,
|
|
61
|
-
}, className) }, { children:
|
|
61
|
+
}, className) }, { children: currentEvmNetwork.name && ((_a = currentEvmNetwork.iconUrls) === null || _a === void 0 ? void 0 : _a[0]) ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Icon.Icon, Object.assign({ size: 'small' }, { children: jsxRuntime.jsx("img", { src: currentEvmNetwork.iconUrls[0], alt: `${currentEvmNetwork.name} icon` }) })), showNetworkName && (jsxRuntime.jsx(Typography.Typography, Object.assign({ className: 'evm-network-control__network-name', as: 'span', variant: 'body_small' }, { children: currentEvmNetwork.vanityName || currentEvmNetwork.name })))] })) : (jsxRuntime.jsx(UnsupportedNetwork.UnsupportedNetwork, { showMsg: showNetworkName })) })));
|
|
62
62
|
}
|
|
63
63
|
return (jsxRuntime.jsxs("button", Object.assign({ "data-testid": 'EvmNetworkControl', type: 'button', onClick: () => network && setIsOpen(!isOpen), className: classNames.classNames(className, {
|
|
64
64
|
[activeClassName]: isOpen,
|
|
65
65
|
'evm-network-control__container': Boolean(walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.supportsNetworkSwitching()),
|
|
66
|
-
'evm-network-control__container--error': !(
|
|
67
|
-
}) }, { children: [(
|
|
66
|
+
'evm-network-control__container--error': !(currentEvmNetwork === null || currentEvmNetwork === void 0 ? void 0 : currentEvmNetwork.name),
|
|
67
|
+
}) }, { children: [(currentEvmNetwork === null || currentEvmNetwork === void 0 ? void 0 : currentEvmNetwork.name) && ((_b = currentEvmNetwork === null || currentEvmNetwork === void 0 ? void 0 : currentEvmNetwork.iconUrls) === null || _b === void 0 ? void 0 : _b[0]) ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Icon.Icon, Object.assign({ size: 'small' }, { children: jsxRuntime.jsx("img", { src: currentEvmNetwork.iconUrls[0], alt: `${currentEvmNetwork.name} icon` }) })), showNetworkName && (jsxRuntime.jsx(Typography.Typography, Object.assign({ className: 'evm-network-control__network-name', as: 'span', variant: 'body_small' }, { children: currentEvmNetwork.vanityName || currentEvmNetwork.name })))] })) : (jsxRuntime.jsx(UnsupportedNetwork.UnsupportedNetwork, { showMsg: showNetworkName })), evmNetworks && evmNetworks.length > 1 && (jsxRuntime.jsx(Icon.Icon, Object.assign({ color: 'text-primary', size: 'small', className: classNames.classNames('evm-network-control__arrow-icon', {
|
|
68
68
|
'evm-network-control__arrow-icon--active': isOpen,
|
|
69
69
|
}) }, { children: jsxRuntime.jsx(stroke.ReactComponent, {}) })))] })));
|
|
70
70
|
};
|
|
@@ -35,7 +35,7 @@ import { UnsupportedNetwork } from '../UnsupportedNetwork/UnsupportedNetwork.js'
|
|
|
35
35
|
|
|
36
36
|
const EvmNetworkControl = ({ evmNetworks, className = '', activeClassName = '', network, walletConnector, isOpen, setIsOpen, showNetworkName = false, }) => {
|
|
37
37
|
var _a, _b;
|
|
38
|
-
const
|
|
38
|
+
const currentEvmNetwork = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.find((element) => network && element.chainId === parseChainId(network));
|
|
39
39
|
if (evmNetworks && !evmNetworks.length) {
|
|
40
40
|
return (jsx("div", Object.assign({ "data-testid": 'EvmNetworkControl', className: classNames('evm-network-control__container evm-network-control__container--error', className) }, { children: jsx(UnsupportedNetwork, { showMsg: showNetworkName }) })));
|
|
41
41
|
}
|
|
@@ -47,20 +47,20 @@ const EvmNetworkControl = ({ evmNetworks, className = '', activeClassName = '',
|
|
|
47
47
|
[activeClassName]: isOpen,
|
|
48
48
|
'evm-network-control__container': Boolean(walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.supportsNetworkSwitching()),
|
|
49
49
|
});
|
|
50
|
-
if (!
|
|
50
|
+
if (!currentEvmNetwork) {
|
|
51
51
|
return (jsxs("button", Object.assign({ "data-testid": 'EvmNetworkControl', type: 'button', onClick: () => setIsOpen(!isOpen), className: unsupportedNetworkClassName }, { children: [jsx(UnsupportedNetwork, { showMsg: showNetworkName }), jsx(Icon, Object.assign({ color: 'text-primary', size: 'small', className: classNames('evm-network-control__arrow-icon', {
|
|
52
52
|
'evm-network-control__arrow-icon--active': isOpen,
|
|
53
53
|
}) }, { children: jsx(SvgStroke, {}) }))] })));
|
|
54
54
|
}
|
|
55
55
|
return (jsx("div", Object.assign({ "data-testid": 'EvmNetworkControl', onClick: () => network && setIsOpen(!isOpen), className: classNames('evm-network-control__container', {
|
|
56
56
|
[activeClassName]: isOpen,
|
|
57
|
-
}, className) }, { children:
|
|
57
|
+
}, className) }, { children: currentEvmNetwork.name && ((_a = currentEvmNetwork.iconUrls) === null || _a === void 0 ? void 0 : _a[0]) ? (jsxs(Fragment, { children: [jsx(Icon, Object.assign({ size: 'small' }, { children: jsx("img", { src: currentEvmNetwork.iconUrls[0], alt: `${currentEvmNetwork.name} icon` }) })), showNetworkName && (jsx(Typography, Object.assign({ className: 'evm-network-control__network-name', as: 'span', variant: 'body_small' }, { children: currentEvmNetwork.vanityName || currentEvmNetwork.name })))] })) : (jsx(UnsupportedNetwork, { showMsg: showNetworkName })) })));
|
|
58
58
|
}
|
|
59
59
|
return (jsxs("button", Object.assign({ "data-testid": 'EvmNetworkControl', type: 'button', onClick: () => network && setIsOpen(!isOpen), className: classNames(className, {
|
|
60
60
|
[activeClassName]: isOpen,
|
|
61
61
|
'evm-network-control__container': Boolean(walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.supportsNetworkSwitching()),
|
|
62
|
-
'evm-network-control__container--error': !(
|
|
63
|
-
}) }, { children: [(
|
|
62
|
+
'evm-network-control__container--error': !(currentEvmNetwork === null || currentEvmNetwork === void 0 ? void 0 : currentEvmNetwork.name),
|
|
63
|
+
}) }, { children: [(currentEvmNetwork === null || currentEvmNetwork === void 0 ? void 0 : currentEvmNetwork.name) && ((_b = currentEvmNetwork === null || currentEvmNetwork === void 0 ? void 0 : currentEvmNetwork.iconUrls) === null || _b === void 0 ? void 0 : _b[0]) ? (jsxs(Fragment, { children: [jsx(Icon, Object.assign({ size: 'small' }, { children: jsx("img", { src: currentEvmNetwork.iconUrls[0], alt: `${currentEvmNetwork.name} icon` }) })), showNetworkName && (jsx(Typography, Object.assign({ className: 'evm-network-control__network-name', as: 'span', variant: 'body_small' }, { children: currentEvmNetwork.vanityName || currentEvmNetwork.name })))] })) : (jsx(UnsupportedNetwork, { showMsg: showNetworkName })), evmNetworks && evmNetworks.length > 1 && (jsx(Icon, Object.assign({ color: 'text-primary', size: 'small', className: classNames('evm-network-control__arrow-icon', {
|
|
64
64
|
'evm-network-control__arrow-icon--active': isOpen,
|
|
65
65
|
}) }, { children: jsx(SvgStroke, {}) })))] })));
|
|
66
66
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { isNetworkUnsupported } from './isNetworkUnsupported';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('@dynamic-labs/utils');
|
|
6
|
+
|
|
7
|
+
// Network is not supported if:
|
|
8
|
+
// - its undefined
|
|
9
|
+
// - its not in evmNetworks
|
|
10
|
+
const isNetworkUnsupported = (network, evmNetworks) => !(evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.find((element) => network && element.chainId === utils.parseChainId(network)));
|
|
11
|
+
|
|
12
|
+
exports.isNetworkUnsupported = isNetworkUnsupported;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { parseChainId } from '@dynamic-labs/utils';
|
|
2
|
+
|
|
3
|
+
// Network is not supported if:
|
|
4
|
+
// - its undefined
|
|
5
|
+
// - its not in evmNetworks
|
|
6
|
+
const isNetworkUnsupported = (network, evmNetworks) => !(evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.find((element) => network && element.chainId === parseChainId(network)));
|
|
7
|
+
|
|
8
|
+
export { isNetworkUnsupported };
|
|
@@ -4,16 +4,39 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _tslib = require('../../../../../_virtual/_tslib.cjs');
|
|
6
6
|
var React = require('react');
|
|
7
|
+
require('@dynamic-labs/sdk-api');
|
|
8
|
+
require('../../../shared/logger.cjs');
|
|
9
|
+
var getFromLS = require('../../../shared/utils/functions/storage/getFromLS.cjs');
|
|
10
|
+
require('@dynamic-labs/iconic');
|
|
11
|
+
require('@dynamic-labs/wallet-connector-core');
|
|
12
|
+
require('react/jsx-runtime');
|
|
13
|
+
require('../../../context/ViewContext/ViewContext.cjs');
|
|
14
|
+
require('@dynamic-labs/utils');
|
|
15
|
+
var localStorage = require('../../constants/localStorage.cjs');
|
|
16
|
+
require('../../constants/colors.cjs');
|
|
17
|
+
require('ethers');
|
|
18
|
+
require('../../../shared/consts/index.cjs');
|
|
7
19
|
var handleUnlinkHelper = require('../../functions/handleUnlinkHelper/handleUnlinkHelper.cjs');
|
|
8
20
|
var isSameWalletName = require('../../functions/isSameWalletName/isSameWalletName.cjs');
|
|
9
21
|
|
|
10
22
|
const useHandleUnlinkWallet = ({ verifiedCredentials, environmentId, primaryWalletId, secondaryWallets, setUser, }) => {
|
|
11
23
|
const callback = React.useCallback((walletId) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
12
|
-
|
|
24
|
+
var _a;
|
|
25
|
+
// when we call handleUnlinkWallet on the same execution stack as setPrimaryWallet, the value of
|
|
26
|
+
// primaryWalletId coming from the DynamicContext will be the old one in this callback function
|
|
27
|
+
// so we need to get the latest value from LS
|
|
28
|
+
// e.g. primary wallet id is 1234, and we have a function like this:
|
|
29
|
+
// async function setPrimaryWalletAndUnlink() {
|
|
30
|
+
// await setPrimaryWallet('5678');
|
|
31
|
+
// handleUnlinkWallet('1234');
|
|
32
|
+
// }
|
|
33
|
+
// without fetching from LS, primaryWalletId would still be 1234 when handleUnlinkWallet runs in the example above
|
|
34
|
+
const currentPrimaryWalletId = (_a = getFromLS.getFromLS(localStorage.PRIMARY_WALLET_ID)) !== null && _a !== void 0 ? _a : primaryWalletId;
|
|
35
|
+
if (walletId === currentPrimaryWalletId)
|
|
13
36
|
return;
|
|
14
37
|
const newUser = yield handleUnlinkHelper.handleUnlinkHelper({
|
|
15
38
|
environmentId,
|
|
16
|
-
primaryWalletId,
|
|
39
|
+
primaryWalletId: currentPrimaryWalletId,
|
|
17
40
|
walletId,
|
|
18
41
|
});
|
|
19
42
|
if (newUser) {
|
|
@@ -1,15 +1,38 @@
|
|
|
1
1
|
import { __awaiter } from '../../../../../_virtual/_tslib.js';
|
|
2
2
|
import { useCallback } from 'react';
|
|
3
|
+
import '@dynamic-labs/sdk-api';
|
|
4
|
+
import '../../../shared/logger.js';
|
|
5
|
+
import { getFromLS } from '../../../shared/utils/functions/storage/getFromLS.js';
|
|
6
|
+
import '@dynamic-labs/iconic';
|
|
7
|
+
import '@dynamic-labs/wallet-connector-core';
|
|
8
|
+
import 'react/jsx-runtime';
|
|
9
|
+
import '../../../context/ViewContext/ViewContext.js';
|
|
10
|
+
import '@dynamic-labs/utils';
|
|
11
|
+
import { PRIMARY_WALLET_ID } from '../../constants/localStorage.js';
|
|
12
|
+
import '../../constants/colors.js';
|
|
13
|
+
import 'ethers';
|
|
14
|
+
import '../../../shared/consts/index.js';
|
|
3
15
|
import { handleUnlinkHelper } from '../../functions/handleUnlinkHelper/handleUnlinkHelper.js';
|
|
4
16
|
import { isSameWalletName } from '../../functions/isSameWalletName/isSameWalletName.js';
|
|
5
17
|
|
|
6
18
|
const useHandleUnlinkWallet = ({ verifiedCredentials, environmentId, primaryWalletId, secondaryWallets, setUser, }) => {
|
|
7
19
|
const callback = useCallback((walletId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
8
|
-
|
|
20
|
+
var _a;
|
|
21
|
+
// when we call handleUnlinkWallet on the same execution stack as setPrimaryWallet, the value of
|
|
22
|
+
// primaryWalletId coming from the DynamicContext will be the old one in this callback function
|
|
23
|
+
// so we need to get the latest value from LS
|
|
24
|
+
// e.g. primary wallet id is 1234, and we have a function like this:
|
|
25
|
+
// async function setPrimaryWalletAndUnlink() {
|
|
26
|
+
// await setPrimaryWallet('5678');
|
|
27
|
+
// handleUnlinkWallet('1234');
|
|
28
|
+
// }
|
|
29
|
+
// without fetching from LS, primaryWalletId would still be 1234 when handleUnlinkWallet runs in the example above
|
|
30
|
+
const currentPrimaryWalletId = (_a = getFromLS(PRIMARY_WALLET_ID)) !== null && _a !== void 0 ? _a : primaryWalletId;
|
|
31
|
+
if (walletId === currentPrimaryWalletId)
|
|
9
32
|
return;
|
|
10
33
|
const newUser = yield handleUnlinkHelper({
|
|
11
34
|
environmentId,
|
|
12
|
-
primaryWalletId,
|
|
35
|
+
primaryWalletId: currentPrimaryWalletId,
|
|
13
36
|
walletId,
|
|
14
37
|
});
|
|
15
38
|
if (newUser) {
|