@broxus/evm-connect 1.12.3 → 1.12.5
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/dist/index.cjs.js +2 -2
- package/dist/index.esm.js +2 -2
- package/lib/cjs/components/EvmConnector/index.js +2 -1
- package/lib/cjs/context/EvmWalletProvidersContext.js +6 -5
- package/lib/cjs/context/EvmWalletServiceContext.js +5 -5
- package/lib/cjs/hooks/useOrderedConnections.js +1 -3
- package/lib/cjs/hooks/useRecentConnectionMeta.js +10 -10
- package/lib/esm/components/EvmConnector/index.js +3 -2
- package/lib/esm/context/EvmWalletProvidersContext.d.ts +3 -1
- package/lib/esm/context/EvmWalletProvidersContext.js +6 -5
- package/lib/esm/context/EvmWalletServiceContext.d.ts +2 -1
- package/lib/esm/context/EvmWalletServiceContext.js +5 -5
- package/lib/esm/hooks/useOrderedConnections.d.ts +2 -1
- package/lib/esm/hooks/useOrderedConnections.js +1 -3
- package/lib/esm/hooks/useRecentConnectionMeta.d.ts +4 -4
- package/lib/esm/hooks/useRecentConnectionMeta.js +10 -10
- package/package.json +2 -2
|
@@ -52,7 +52,8 @@ require("./index.css");
|
|
|
52
52
|
exports.EvmConnector = (0, mobx_react_lite_1.observer)((props) => {
|
|
53
53
|
const intl = (0, react_intl_1.useIntl)();
|
|
54
54
|
const walletService = (0, context_1.useEvmWalletService)();
|
|
55
|
-
const
|
|
55
|
+
const walletProviders = (0, context_1.useEvmWalletProviders)();
|
|
56
|
+
const [, setRecentMeta] = (0, hooks_1.useRecentConnectionMeta)(walletProviders.recentMetaStorageKey);
|
|
56
57
|
const drop = React.useRef(null);
|
|
57
58
|
const { changeWalletButtonText = intl.formatMessage(intl_1.default.EVM_CONNECT_CHANGE_WALLET_BTN_TEXT), className, connectButtonShape, connectButtonText = intl.formatMessage(intl_1.default.EVM_CONNECT_CONNECT_BTN_TEXT), connectButtonTrigger, connectButtonType, disconnectButtonText = intl.formatMessage(intl_1.default.EVM_CONNECT_DISCONNECT_BTN_TEXT), network = walletService.network, popupType, suffix, showDropMenu = true, showSubIcon = true, standalone = walletService.providers?.length === 1, warnUnsupportedNetwork = true, } = props;
|
|
58
59
|
const changeWallet = () => {
|
|
@@ -47,9 +47,9 @@ exports.EvmWalletProvidersContext = React.createContext(null);
|
|
|
47
47
|
function useEvmWalletProviders() {
|
|
48
48
|
return (0, react_uikit_1.useContext)(exports.EvmWalletProvidersContext);
|
|
49
49
|
}
|
|
50
|
-
exports.EvmWalletProvidersProvider = (0, mobx_react_lite_1.observer)(({ agreementsNote, children, network, onConnect, }) => {
|
|
50
|
+
exports.EvmWalletProvidersProvider = (0, mobx_react_lite_1.observer)(({ agreementsNote, children, network, recentMetaStorageKey, onConnect, }) => {
|
|
51
51
|
const walletService = (0, EvmWalletServiceContext_1.useEvmWalletService)();
|
|
52
|
-
const [recentMeta, setRecentMeta] = (0, hooks_1.useRecentConnectionMeta)();
|
|
52
|
+
const [recentMeta, setRecentMeta] = (0, hooks_1.useRecentConnectionMeta)(recentMetaStorageKey);
|
|
53
53
|
const [error, setError] = React.useState(null);
|
|
54
54
|
const [connectingProvider, setConnectingProvider] = React.useState(null);
|
|
55
55
|
const connect = React.useCallback(async (providerConfig) => {
|
|
@@ -72,13 +72,13 @@ exports.EvmWalletProvidersProvider = (0, mobx_react_lite_1.observer)(({ agreemen
|
|
|
72
72
|
disconnected: false,
|
|
73
73
|
providerId: providerConfig.id,
|
|
74
74
|
type: providerConfig.connector.type,
|
|
75
|
-
});
|
|
75
|
+
}, recentMetaStorageKey);
|
|
76
76
|
walletService.setState('providerId', providerConfig.id);
|
|
77
77
|
}
|
|
78
78
|
catch (e) {
|
|
79
79
|
setError(e);
|
|
80
80
|
}
|
|
81
|
-
}, [network, onConnect, recentMeta, setRecentMeta, walletService]);
|
|
81
|
+
}, [network, onConnect, recentMeta, recentMetaStorageKey, setRecentMeta, walletService]);
|
|
82
82
|
const reset = React.useCallback(() => {
|
|
83
83
|
setError(null);
|
|
84
84
|
setConnectingProvider(null);
|
|
@@ -88,8 +88,9 @@ exports.EvmWalletProvidersProvider = (0, mobx_react_lite_1.observer)(({ agreemen
|
|
|
88
88
|
connect,
|
|
89
89
|
connectingProvider,
|
|
90
90
|
error,
|
|
91
|
+
recentMetaStorageKey,
|
|
91
92
|
reset,
|
|
92
|
-
}), [agreementsNote, connect, connectingProvider, error, reset]);
|
|
93
|
+
}), [agreementsNote, connect, connectingProvider, error, recentMetaStorageKey, reset]);
|
|
93
94
|
return React.createElement(exports.EvmWalletProvidersContext.Provider, { value: context }, children);
|
|
94
95
|
});
|
|
95
96
|
if (process.env.NODE_ENV !== 'production') {
|
|
@@ -47,8 +47,8 @@ exports.EvmWalletServiceContext = React.createContext(null);
|
|
|
47
47
|
function useEvmWalletService() {
|
|
48
48
|
return (0, react_uikit_1.useContext)(exports.EvmWalletServiceContext);
|
|
49
49
|
}
|
|
50
|
-
function EvmWalletServiceProvider({ agreementsNote, children, params, wallet, }) {
|
|
51
|
-
const [, setRecentMeta] = (0, hooks_1.useRecentConnectionMeta)();
|
|
50
|
+
function EvmWalletServiceProvider({ agreementsNote, children, params, recentMetaStorageKey, wallet, }) {
|
|
51
|
+
const [, setRecentMeta] = (0, hooks_1.useRecentConnectionMeta)(recentMetaStorageKey);
|
|
52
52
|
const context = React.useMemo(() => {
|
|
53
53
|
if (wallet instanceof services_1.EvmWalletService) {
|
|
54
54
|
return wallet;
|
|
@@ -57,12 +57,12 @@ function EvmWalletServiceProvider({ agreementsNote, children, params, wallet, })
|
|
|
57
57
|
}, [params, wallet]);
|
|
58
58
|
React.useEffect(() => (0, mobx_1.reaction)(() => context.chainId, chainId => {
|
|
59
59
|
if (chainId) {
|
|
60
|
-
const recentMeta = (0, hooks_1.getRecentConnectionMeta)();
|
|
60
|
+
const recentMeta = (0, hooks_1.getRecentConnectionMeta)(recentMetaStorageKey);
|
|
61
61
|
setRecentMeta({ ...recentMeta, chainId: chainId.toString() });
|
|
62
62
|
}
|
|
63
|
-
}, { delay: 10, fireImmediately: context.isReady }), [context, setRecentMeta]);
|
|
63
|
+
}, { delay: 10, fireImmediately: context.isReady }), [context, recentMetaStorageKey, setRecentMeta]);
|
|
64
64
|
return (React.createElement(exports.EvmWalletServiceContext.Provider, { value: context },
|
|
65
|
-
React.createElement(EvmWalletProvidersContext_1.EvmWalletProvidersProvider, { agreementsNote: agreementsNote }, children)));
|
|
65
|
+
React.createElement(EvmWalletProvidersContext_1.EvmWalletProvidersProvider, { agreementsNote: agreementsNote, recentMetaStorageKey: recentMetaStorageKey }, children)));
|
|
66
66
|
}
|
|
67
67
|
if (process.env.NODE_ENV !== 'production') {
|
|
68
68
|
exports.EvmWalletServiceContext.displayName = 'EvmWalletServiceContext';
|
|
@@ -35,9 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.useOrderedConnections = useOrderedConnections;
|
|
37
37
|
const React = __importStar(require("react"));
|
|
38
|
-
|
|
39
|
-
function useOrderedConnections(providers) {
|
|
40
|
-
const [recentMeta] = (0, useRecentConnectionMeta_1.useRecentConnectionMeta)();
|
|
38
|
+
function useOrderedConnections(providers, recentMeta) {
|
|
41
39
|
return React.useMemo(() => providers.reduce((acc, provider) => {
|
|
42
40
|
if (provider.id === recentMeta?.providerId) {
|
|
43
41
|
acc.unshift({ ...provider, isRecent: true });
|
|
@@ -44,16 +44,16 @@ function isRecentConnectionMeta(value) {
|
|
|
44
44
|
const meta = { providerId: value.providerId, type: value.type };
|
|
45
45
|
return Boolean(meta.type && types_1.EthereumConnectionType[meta.type] && !!meta.providerId);
|
|
46
46
|
}
|
|
47
|
-
function storeRecentConnectionMeta(meta) {
|
|
47
|
+
function storeRecentConnectionMeta(meta, storageKey = constants_1.EVM_RECENT_CONNECTION) {
|
|
48
48
|
if (!meta) {
|
|
49
|
-
js_utils_1.storage.remove(
|
|
49
|
+
js_utils_1.storage.remove(storageKey);
|
|
50
50
|
return;
|
|
51
51
|
}
|
|
52
52
|
(0, js_utils_1.debug)('Store EVM recent connection', meta);
|
|
53
|
-
js_utils_1.storage.set(
|
|
53
|
+
js_utils_1.storage.set(storageKey, JSON.stringify(meta));
|
|
54
54
|
}
|
|
55
|
-
function getRecentConnectionMeta() {
|
|
56
|
-
const value = js_utils_1.storage.get(
|
|
55
|
+
function getRecentConnectionMeta(storageKey = constants_1.EVM_RECENT_CONNECTION) {
|
|
56
|
+
const value = js_utils_1.storage.get(storageKey);
|
|
57
57
|
if (!value) {
|
|
58
58
|
return undefined;
|
|
59
59
|
}
|
|
@@ -66,14 +66,14 @@ function getRecentConnectionMeta() {
|
|
|
66
66
|
catch (e) {
|
|
67
67
|
(0, js_utils_1.debug)(e);
|
|
68
68
|
}
|
|
69
|
-
storeRecentConnectionMeta(undefined);
|
|
69
|
+
storeRecentConnectionMeta(undefined, storageKey);
|
|
70
70
|
return undefined;
|
|
71
71
|
}
|
|
72
|
-
function useRecentConnectionMeta() {
|
|
73
|
-
const [meta, setMeta] = React.useState(getRecentConnectionMeta());
|
|
72
|
+
function useRecentConnectionMeta(storageKey = constants_1.EVM_RECENT_CONNECTION) {
|
|
73
|
+
const [meta, setMeta] = React.useState(getRecentConnectionMeta(storageKey));
|
|
74
74
|
React.useEffect(() => {
|
|
75
75
|
const onStorage = (event) => {
|
|
76
|
-
if (event.key ===
|
|
76
|
+
if (event.key === storageKey && event.newValue) {
|
|
77
77
|
const json = JSON.parse(event.newValue);
|
|
78
78
|
if (isRecentConnectionMeta(json)) {
|
|
79
79
|
setMeta(json);
|
|
@@ -88,6 +88,6 @@ function useRecentConnectionMeta() {
|
|
|
88
88
|
window.removeEventListener('storage', onStorage);
|
|
89
89
|
}
|
|
90
90
|
};
|
|
91
|
-
}, []);
|
|
91
|
+
}, [storageKey]);
|
|
92
92
|
return [meta, storeRecentConnectionMeta];
|
|
93
93
|
}
|
|
@@ -6,14 +6,15 @@ import { observer } from 'mobx-react-lite';
|
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import { useIntl } from 'react-intl';
|
|
8
8
|
import { EvmConnectButton } from '../../components/EvmConnectButton';
|
|
9
|
-
import { useEvmWalletService } from '../../context';
|
|
9
|
+
import { useEvmWalletProviders, useEvmWalletService } from '../../context';
|
|
10
10
|
import { getRecentConnectionMeta, useRecentConnectionMeta } from '../../hooks';
|
|
11
11
|
import messages from '../../intl';
|
|
12
12
|
import './index.css';
|
|
13
13
|
export const EvmConnector = observer((props) => {
|
|
14
14
|
const intl = useIntl();
|
|
15
15
|
const walletService = useEvmWalletService();
|
|
16
|
-
const
|
|
16
|
+
const walletProviders = useEvmWalletProviders();
|
|
17
|
+
const [, setRecentMeta] = useRecentConnectionMeta(walletProviders.recentMetaStorageKey);
|
|
17
18
|
const drop = React.useRef(null);
|
|
18
19
|
const { changeWalletButtonText = intl.formatMessage(messages.EVM_CONNECT_CHANGE_WALLET_BTN_TEXT), className, connectButtonShape, connectButtonText = intl.formatMessage(messages.EVM_CONNECT_CONNECT_BTN_TEXT), connectButtonTrigger, connectButtonType, disconnectButtonText = intl.formatMessage(messages.EVM_CONNECT_DISCONNECT_BTN_TEXT), network = walletService.network, popupType, suffix, showDropMenu = true, showSubIcon = true, standalone = walletService.providers?.length === 1, warnUnsupportedNetwork = true, } = props;
|
|
19
20
|
const changeWallet = () => {
|
|
@@ -6,6 +6,7 @@ export interface EvmWalletProvidersContextConsumer {
|
|
|
6
6
|
connect: (providerConfig: EvmWalletProviderConfig) => Promise<void>;
|
|
7
7
|
connectingProvider?: EvmWalletProviderConfig | null;
|
|
8
8
|
error?: Error | null;
|
|
9
|
+
recentMetaStorageKey?: string;
|
|
9
10
|
reset: VoidFunction;
|
|
10
11
|
}
|
|
11
12
|
export declare const EvmWalletProvidersContext: React.Context<EvmWalletProvidersContextConsumer | null>;
|
|
@@ -13,8 +14,9 @@ export declare function useEvmWalletProviders(): EvmWalletProvidersContextConsum
|
|
|
13
14
|
export type EvmWalletProvidersProviderProps = React.PropsWithChildren<{
|
|
14
15
|
agreementsNote?: React.ReactNode;
|
|
15
16
|
network?: EvmNetworkConfig;
|
|
17
|
+
recentMetaStorageKey?: string;
|
|
16
18
|
onConnect?: (connector?: EthereumConnector) => Promise<void> | void;
|
|
17
19
|
}>;
|
|
18
|
-
export declare const EvmWalletProvidersProvider: (({ agreementsNote, children, network, onConnect, }: EvmWalletProvidersProviderProps) => React.JSX.Element) & {
|
|
20
|
+
export declare const EvmWalletProvidersProvider: (({ agreementsNote, children, network, recentMetaStorageKey, onConnect, }: EvmWalletProvidersProviderProps) => React.JSX.Element) & {
|
|
19
21
|
displayName: string;
|
|
20
22
|
};
|
|
@@ -10,9 +10,9 @@ export const EvmWalletProvidersContext = React.createContext(null);
|
|
|
10
10
|
export function useEvmWalletProviders() {
|
|
11
11
|
return useContext(EvmWalletProvidersContext);
|
|
12
12
|
}
|
|
13
|
-
export const EvmWalletProvidersProvider = observer(({ agreementsNote, children, network, onConnect, }) => {
|
|
13
|
+
export const EvmWalletProvidersProvider = observer(({ agreementsNote, children, network, recentMetaStorageKey, onConnect, }) => {
|
|
14
14
|
const walletService = useEvmWalletService();
|
|
15
|
-
const [recentMeta, setRecentMeta] = useRecentConnectionMeta();
|
|
15
|
+
const [recentMeta, setRecentMeta] = useRecentConnectionMeta(recentMetaStorageKey);
|
|
16
16
|
const [error, setError] = React.useState(null);
|
|
17
17
|
const [connectingProvider, setConnectingProvider] = React.useState(null);
|
|
18
18
|
const connect = React.useCallback(async (providerConfig) => {
|
|
@@ -35,13 +35,13 @@ export const EvmWalletProvidersProvider = observer(({ agreementsNote, children,
|
|
|
35
35
|
disconnected: false,
|
|
36
36
|
providerId: providerConfig.id,
|
|
37
37
|
type: providerConfig.connector.type,
|
|
38
|
-
});
|
|
38
|
+
}, recentMetaStorageKey);
|
|
39
39
|
walletService.setState('providerId', providerConfig.id);
|
|
40
40
|
}
|
|
41
41
|
catch (e) {
|
|
42
42
|
setError(e);
|
|
43
43
|
}
|
|
44
|
-
}, [network, onConnect, recentMeta, setRecentMeta, walletService]);
|
|
44
|
+
}, [network, onConnect, recentMeta, recentMetaStorageKey, setRecentMeta, walletService]);
|
|
45
45
|
const reset = React.useCallback(() => {
|
|
46
46
|
setError(null);
|
|
47
47
|
setConnectingProvider(null);
|
|
@@ -51,8 +51,9 @@ export const EvmWalletProvidersProvider = observer(({ agreementsNote, children,
|
|
|
51
51
|
connect,
|
|
52
52
|
connectingProvider,
|
|
53
53
|
error,
|
|
54
|
+
recentMetaStorageKey,
|
|
54
55
|
reset,
|
|
55
|
-
}), [agreementsNote, connect, connectingProvider, error, reset]);
|
|
56
|
+
}), [agreementsNote, connect, connectingProvider, error, recentMetaStorageKey, reset]);
|
|
56
57
|
return React.createElement(EvmWalletProvidersContext.Provider, { value: context }, children);
|
|
57
58
|
});
|
|
58
59
|
if (process.env.NODE_ENV !== 'production') {
|
|
@@ -5,7 +5,8 @@ export declare function useEvmWalletService(): EvmWalletService;
|
|
|
5
5
|
interface EvmWalletProviderProps {
|
|
6
6
|
agreementsNote?: React.ReactNode;
|
|
7
7
|
params?: EvmWalletServiceCtorParams;
|
|
8
|
+
recentMetaStorageKey?: string;
|
|
8
9
|
wallet?: EvmWalletService;
|
|
9
10
|
}
|
|
10
|
-
export declare function EvmWalletServiceProvider({ agreementsNote, children, params, wallet, }: React.PropsWithChildren<EvmWalletProviderProps>): React.JSX.Element;
|
|
11
|
+
export declare function EvmWalletServiceProvider({ agreementsNote, children, params, recentMetaStorageKey, wallet, }: React.PropsWithChildren<EvmWalletProviderProps>): React.JSX.Element;
|
|
11
12
|
export {};
|
|
@@ -9,8 +9,8 @@ export const EvmWalletServiceContext = React.createContext(null);
|
|
|
9
9
|
export function useEvmWalletService() {
|
|
10
10
|
return useContext(EvmWalletServiceContext);
|
|
11
11
|
}
|
|
12
|
-
export function EvmWalletServiceProvider({ agreementsNote, children, params, wallet, }) {
|
|
13
|
-
const [, setRecentMeta] = useRecentConnectionMeta();
|
|
12
|
+
export function EvmWalletServiceProvider({ agreementsNote, children, params, recentMetaStorageKey, wallet, }) {
|
|
13
|
+
const [, setRecentMeta] = useRecentConnectionMeta(recentMetaStorageKey);
|
|
14
14
|
const context = React.useMemo(() => {
|
|
15
15
|
if (wallet instanceof EvmWalletService) {
|
|
16
16
|
return wallet;
|
|
@@ -19,12 +19,12 @@ export function EvmWalletServiceProvider({ agreementsNote, children, params, wal
|
|
|
19
19
|
}, [params, wallet]);
|
|
20
20
|
React.useEffect(() => reaction(() => context.chainId, chainId => {
|
|
21
21
|
if (chainId) {
|
|
22
|
-
const recentMeta = getRecentConnectionMeta();
|
|
22
|
+
const recentMeta = getRecentConnectionMeta(recentMetaStorageKey);
|
|
23
23
|
setRecentMeta({ ...recentMeta, chainId: chainId.toString() });
|
|
24
24
|
}
|
|
25
|
-
}, { delay: 10, fireImmediately: context.isReady }), [context, setRecentMeta]);
|
|
25
|
+
}, { delay: 10, fireImmediately: context.isReady }), [context, recentMetaStorageKey, setRecentMeta]);
|
|
26
26
|
return (React.createElement(EvmWalletServiceContext.Provider, { value: context },
|
|
27
|
-
React.createElement(EvmWalletProvidersProvider, { agreementsNote: agreementsNote }, children)));
|
|
27
|
+
React.createElement(EvmWalletProvidersProvider, { agreementsNote: agreementsNote, recentMetaStorageKey: recentMetaStorageKey }, children)));
|
|
28
28
|
}
|
|
29
29
|
if (process.env.NODE_ENV !== 'production') {
|
|
30
30
|
EvmWalletServiceContext.displayName = 'EvmWalletServiceContext';
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import { type RecentConnectionMeta } from '../hooks/useRecentConnectionMeta';
|
|
1
2
|
import { type EvmWalletProviderConfig } from '../types';
|
|
2
|
-
export declare function useOrderedConnections(providers: Readonly<EvmWalletProviderConfig[]
|
|
3
|
+
export declare function useOrderedConnections(providers: Readonly<EvmWalletProviderConfig[]>, recentMeta?: RecentConnectionMeta): EvmWalletProviderConfig[];
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
export function useOrderedConnections(providers) {
|
|
4
|
-
const [recentMeta] = useRecentConnectionMeta();
|
|
2
|
+
export function useOrderedConnections(providers, recentMeta) {
|
|
5
3
|
return React.useMemo(() => providers.reduce((acc, provider) => {
|
|
6
4
|
if (provider.id === recentMeta?.providerId) {
|
|
7
5
|
acc.unshift({ ...provider, isRecent: true });
|
|
@@ -5,11 +5,11 @@ export interface RecentConnectionMeta {
|
|
|
5
5
|
providerId: string;
|
|
6
6
|
type?: EthereumConnectionType;
|
|
7
7
|
}
|
|
8
|
-
export declare function storeRecentConnectionMeta(meta: RecentConnectionMeta | undefined): void;
|
|
9
|
-
export declare function getRecentConnectionMeta(): RecentConnectionMeta | undefined;
|
|
8
|
+
export declare function storeRecentConnectionMeta(meta: RecentConnectionMeta | undefined, storageKey?: string): void;
|
|
9
|
+
export declare function getRecentConnectionMeta(storageKey?: string): RecentConnectionMeta | undefined;
|
|
10
10
|
type UseRecentConnectionMeta = [
|
|
11
11
|
value: RecentConnectionMeta | undefined,
|
|
12
|
-
setValue: (meta: RecentConnectionMeta | undefined) => void
|
|
12
|
+
setValue: (meta: RecentConnectionMeta | undefined, storageKey?: string) => void
|
|
13
13
|
];
|
|
14
|
-
export declare function useRecentConnectionMeta(): UseRecentConnectionMeta;
|
|
14
|
+
export declare function useRecentConnectionMeta(storageKey?: string): UseRecentConnectionMeta;
|
|
15
15
|
export {};
|
|
@@ -6,16 +6,16 @@ function isRecentConnectionMeta(value) {
|
|
|
6
6
|
const meta = { providerId: value.providerId, type: value.type };
|
|
7
7
|
return Boolean(meta.type && EthereumConnectionType[meta.type] && !!meta.providerId);
|
|
8
8
|
}
|
|
9
|
-
export function storeRecentConnectionMeta(meta) {
|
|
9
|
+
export function storeRecentConnectionMeta(meta, storageKey = EVM_RECENT_CONNECTION) {
|
|
10
10
|
if (!meta) {
|
|
11
|
-
storage.remove(
|
|
11
|
+
storage.remove(storageKey);
|
|
12
12
|
return;
|
|
13
13
|
}
|
|
14
14
|
debug('Store EVM recent connection', meta);
|
|
15
|
-
storage.set(
|
|
15
|
+
storage.set(storageKey, JSON.stringify(meta));
|
|
16
16
|
}
|
|
17
|
-
export function getRecentConnectionMeta() {
|
|
18
|
-
const value = storage.get(
|
|
17
|
+
export function getRecentConnectionMeta(storageKey = EVM_RECENT_CONNECTION) {
|
|
18
|
+
const value = storage.get(storageKey);
|
|
19
19
|
if (!value) {
|
|
20
20
|
return undefined;
|
|
21
21
|
}
|
|
@@ -28,14 +28,14 @@ export function getRecentConnectionMeta() {
|
|
|
28
28
|
catch (e) {
|
|
29
29
|
debug(e);
|
|
30
30
|
}
|
|
31
|
-
storeRecentConnectionMeta(undefined);
|
|
31
|
+
storeRecentConnectionMeta(undefined, storageKey);
|
|
32
32
|
return undefined;
|
|
33
33
|
}
|
|
34
|
-
export function useRecentConnectionMeta() {
|
|
35
|
-
const [meta, setMeta] = React.useState(getRecentConnectionMeta());
|
|
34
|
+
export function useRecentConnectionMeta(storageKey = EVM_RECENT_CONNECTION) {
|
|
35
|
+
const [meta, setMeta] = React.useState(getRecentConnectionMeta(storageKey));
|
|
36
36
|
React.useEffect(() => {
|
|
37
37
|
const onStorage = (event) => {
|
|
38
|
-
if (event.key ===
|
|
38
|
+
if (event.key === storageKey && event.newValue) {
|
|
39
39
|
const json = JSON.parse(event.newValue);
|
|
40
40
|
if (isRecentConnectionMeta(json)) {
|
|
41
41
|
setMeta(json);
|
|
@@ -50,6 +50,6 @@ export function useRecentConnectionMeta() {
|
|
|
50
50
|
window.removeEventListener('storage', onStorage);
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
|
-
}, []);
|
|
53
|
+
}, [storageKey]);
|
|
54
54
|
return [meta, storeRecentConnectionMeta];
|
|
55
55
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@broxus/evm-connect",
|
|
3
|
-
"version": "1.12.
|
|
3
|
+
"version": "1.12.5",
|
|
4
4
|
"description": "Ethereum wallets connector.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -96,5 +96,5 @@
|
|
|
96
96
|
"web3-types": "^1.x",
|
|
97
97
|
"web3-utils": "^4.x"
|
|
98
98
|
},
|
|
99
|
-
"gitHead": "
|
|
99
|
+
"gitHead": "7ac22e228c35e0140f251e2103fa6d4af1ff8679"
|
|
100
100
|
}
|