@lifi/widget 4.0.0-beta.0 → 4.0.0-beta.1
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/esm/config/version.d.ts +1 -1
- package/dist/esm/config/version.js +1 -1
- package/dist/esm/providers/WalletProvider/WalletProvider.d.ts +1 -1
- package/dist/esm/providers/WalletProvider/WalletProvider.js +12 -30
- package/dist/esm/providers/WalletProvider/WalletProvider.js.map +1 -1
- package/package.json +3 -3
- package/src/config/version.ts +1 -1
- package/src/providers/WalletProvider/WalletProvider.tsx +25 -63
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const name = "@lifi/widget";
|
|
2
|
-
export declare const version = "4.0.0-beta.
|
|
2
|
+
export declare const version = "4.0.0-beta.1";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { WidgetProviderProps } from '@lifi/widget-provider';
|
|
2
|
-
import {
|
|
2
|
+
import type { PropsWithChildren, ReactNode } from 'react';
|
|
3
3
|
interface WalletProviderProps extends PropsWithChildren {
|
|
4
4
|
providers: ((props: PropsWithChildren<WidgetProviderProps>) => ReactNode)[];
|
|
5
5
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import { useMemo, useRef, } from 'react';
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { WalletManagementProviders } from '@lifi/wallet-management';
|
|
4
3
|
import { useTranslation } from 'react-i18next';
|
|
5
4
|
import { useAvailableChains } from '../../hooks/useAvailableChains.js';
|
|
6
5
|
import { useInitializeSDKProviders } from '../../hooks/useInitializeSDKProviders.js';
|
|
@@ -9,36 +8,19 @@ import { useExternalWalletProvider } from './useExternalWalletProvider.js';
|
|
|
9
8
|
export const WalletProvider = ({ children, providers, }) => {
|
|
10
9
|
const { walletConfig } = useWidgetConfig();
|
|
11
10
|
const { chains } = useAvailableChains();
|
|
12
|
-
const prevProvidersRef = useRef(providers);
|
|
13
|
-
// Memoize providers to maintain referential stability and prevent remounts
|
|
14
|
-
const memoizedProviders = useMemo(() => {
|
|
15
|
-
if (prevProvidersRef.current.length === providers.length &&
|
|
16
|
-
prevProvidersRef.current.every((provider, index) => provider === providers[index])) {
|
|
17
|
-
return prevProvidersRef.current;
|
|
18
|
-
}
|
|
19
|
-
prevProvidersRef.current = providers;
|
|
20
|
-
return providers;
|
|
21
|
-
}, [providers]);
|
|
22
|
-
const baseContent = _jsx(WalletMenuProvider, { children: children });
|
|
23
|
-
return memoizedProviders.reduceRight((acc, ProviderComponent) => (_jsx(ProviderComponent, { forceInternalWalletManagement: walletConfig?.forceInternalWalletManagement, chains: chains ?? [], children: acc }, ProviderComponent.name)), baseContent);
|
|
24
|
-
};
|
|
25
|
-
const WalletMenuProvider = ({ children }) => {
|
|
26
|
-
const { walletConfig } = useWidgetConfig();
|
|
27
11
|
const { i18n } = useTranslation();
|
|
28
|
-
const { internalChainTypes } = useExternalWalletProvider();
|
|
29
|
-
//
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
|
|
12
|
+
const { useExternalWalletProvidersOnly, internalChainTypes } = useExternalWalletProvider();
|
|
13
|
+
// If all chain types are already managed externally (host app set up providers),
|
|
14
|
+
// skip re-composing — the contexts are already populated above us.
|
|
15
|
+
const effectiveProviders = useExternalWalletProvidersOnly ? [] : providers;
|
|
16
|
+
return (_jsx(WalletManagementProviders, { config: {
|
|
33
17
|
locale: i18n.resolvedLanguage,
|
|
34
18
|
enabledChainTypes: internalChainTypes,
|
|
35
19
|
walletEcosystemsOrder: walletConfig?.walletEcosystemsOrder,
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
]);
|
|
42
|
-
return (_jsx(WalletManagementProvider, { config: config, children: children }));
|
|
20
|
+
}, providers: effectiveProviders, chains: chains, forceInternalWalletManagement: walletConfig?.forceInternalWalletManagement, children: _jsx(SDKProviderInitializer, { children: children }) }));
|
|
21
|
+
};
|
|
22
|
+
const SDKProviderInitializer = ({ children }) => {
|
|
23
|
+
useInitializeSDKProviders();
|
|
24
|
+
return _jsx(_Fragment, { children: children });
|
|
43
25
|
};
|
|
44
26
|
//# sourceMappingURL=WalletProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletProvider.js","sourceRoot":"","sources":["../../../../src/providers/WalletProvider/WalletProvider.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"WalletProvider.js","sourceRoot":"","sources":["../../../../src/providers/WalletProvider/WalletProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAA;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAM1E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,QAAQ,EACR,SAAS,GAC8B,EAAE,EAAE;IAC3C,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAA;IAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAA;IACvC,MAAM,EAAE,IAAI,EAAE,GAAG,cAAc,EAAE,CAAA;IACjC,MAAM,EAAE,8BAA8B,EAAE,kBAAkB,EAAE,GAC1D,yBAAyB,EAAE,CAAA;IAE7B,iFAAiF;IACjF,mEAAmE;IACnE,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IAE1E,OAAO,CACL,KAAC,yBAAyB,IACxB,MAAM,EAAE;YACN,MAAM,EAAE,IAAI,CAAC,gBAAyB;YACtC,iBAAiB,EAAE,kBAAkB;YACrC,qBAAqB,EAAE,YAAY,EAAE,qBAAqB;SAC3D,EACD,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,MAAM,EACd,6BAA6B,EAC3B,YAAY,EAAE,6BAA6B,YAG7C,KAAC,sBAAsB,cAAE,QAAQ,GAA0B,GACjC,CAC7B,CAAA;AACH,CAAC,CAAA;AAED,MAAM,sBAAsB,GAA0B,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACrE,yBAAyB,EAAE,CAAA;IAC3B,OAAO,4BAAG,QAAQ,GAAI,CAAA;AACxB,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/widget",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.1",
|
|
4
4
|
"description": "LI.FI Widget for cross-chain bridging and swapping. It will drive your multi-chain strategy and attract new users from everywhere.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/esm/index.js",
|
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
"react-intersection-observer": "^9.16.0",
|
|
48
48
|
"react-transition-group": "^4.4.5",
|
|
49
49
|
"zustand": "^5.0.12",
|
|
50
|
-
"@lifi/wallet-management": "4.0.0-beta.
|
|
51
|
-
"@lifi/widget-provider": "4.0.0-beta.
|
|
50
|
+
"@lifi/wallet-management": "4.0.0-beta.1",
|
|
51
|
+
"@lifi/widget-provider": "4.0.0-beta.1"
|
|
52
52
|
},
|
|
53
53
|
"peerDependencies": {
|
|
54
54
|
"@tanstack/react-query": ">=5.90.0",
|
package/src/config/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = '@lifi/widget'
|
|
2
|
-
export const version = '4.0.0-beta.
|
|
2
|
+
export const version = '4.0.0-beta.1'
|
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { WalletManagementProvider } from '@lifi/wallet-management'
|
|
1
|
+
import { WalletManagementProviders } from '@lifi/wallet-management'
|
|
3
2
|
import type { WidgetProviderProps } from '@lifi/widget-provider'
|
|
4
|
-
import {
|
|
5
|
-
type FC,
|
|
6
|
-
type PropsWithChildren,
|
|
7
|
-
type ReactNode,
|
|
8
|
-
useMemo,
|
|
9
|
-
useRef,
|
|
10
|
-
} from 'react'
|
|
3
|
+
import type { FC, PropsWithChildren, ReactNode } from 'react'
|
|
11
4
|
import { useTranslation } from 'react-i18next'
|
|
12
5
|
import { useAvailableChains } from '../../hooks/useAvailableChains.js'
|
|
13
6
|
import { useInitializeSDKProviders } from '../../hooks/useInitializeSDKProviders.js'
|
|
@@ -24,64 +17,33 @@ export const WalletProvider = ({
|
|
|
24
17
|
}: PropsWithChildren<WalletProviderProps>) => {
|
|
25
18
|
const { walletConfig } = useWidgetConfig()
|
|
26
19
|
const { chains } = useAvailableChains()
|
|
20
|
+
const { i18n } = useTranslation()
|
|
21
|
+
const { useExternalWalletProvidersOnly, internalChainTypes } =
|
|
22
|
+
useExternalWalletProvider()
|
|
27
23
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const memoizedProviders = useMemo(() => {
|
|
32
|
-
if (
|
|
33
|
-
prevProvidersRef.current.length === providers.length &&
|
|
34
|
-
prevProvidersRef.current.every(
|
|
35
|
-
(provider, index) => provider === providers[index]
|
|
36
|
-
)
|
|
37
|
-
) {
|
|
38
|
-
return prevProvidersRef.current
|
|
39
|
-
}
|
|
40
|
-
prevProvidersRef.current = providers
|
|
41
|
-
return providers
|
|
42
|
-
}, [providers])
|
|
43
|
-
|
|
44
|
-
const baseContent = <WalletMenuProvider>{children}</WalletMenuProvider>
|
|
24
|
+
// If all chain types are already managed externally (host app set up providers),
|
|
25
|
+
// skip re-composing — the contexts are already populated above us.
|
|
26
|
+
const effectiveProviders = useExternalWalletProvidersOnly ? [] : providers
|
|
45
27
|
|
|
46
|
-
return
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
28
|
+
return (
|
|
29
|
+
<WalletManagementProviders
|
|
30
|
+
config={{
|
|
31
|
+
locale: i18n.resolvedLanguage as never,
|
|
32
|
+
enabledChainTypes: internalChainTypes,
|
|
33
|
+
walletEcosystemsOrder: walletConfig?.walletEcosystemsOrder,
|
|
34
|
+
}}
|
|
35
|
+
providers={effectiveProviders}
|
|
36
|
+
chains={chains}
|
|
37
|
+
forceInternalWalletManagement={
|
|
38
|
+
walletConfig?.forceInternalWalletManagement
|
|
39
|
+
}
|
|
40
|
+
>
|
|
41
|
+
<SDKProviderInitializer>{children}</SDKProviderInitializer>
|
|
42
|
+
</WalletManagementProviders>
|
|
59
43
|
)
|
|
60
44
|
}
|
|
61
45
|
|
|
62
|
-
const
|
|
63
|
-
const { walletConfig } = useWidgetConfig()
|
|
64
|
-
const { i18n } = useTranslation()
|
|
65
|
-
const { internalChainTypes } = useExternalWalletProvider()
|
|
66
|
-
|
|
67
|
-
// Initialize SDK client with providers wrapping the wallet menu provider
|
|
46
|
+
const SDKProviderInitializer: FC<PropsWithChildren> = ({ children }) => {
|
|
68
47
|
useInitializeSDKProviders()
|
|
69
|
-
|
|
70
|
-
const config: WalletManagementConfig = useMemo(() => {
|
|
71
|
-
return {
|
|
72
|
-
locale: i18n.resolvedLanguage as never,
|
|
73
|
-
enabledChainTypes: internalChainTypes,
|
|
74
|
-
walletEcosystemsOrder: walletConfig?.walletEcosystemsOrder,
|
|
75
|
-
}
|
|
76
|
-
}, [
|
|
77
|
-
i18n.resolvedLanguage,
|
|
78
|
-
internalChainTypes,
|
|
79
|
-
walletConfig?.walletEcosystemsOrder,
|
|
80
|
-
])
|
|
81
|
-
|
|
82
|
-
return (
|
|
83
|
-
<WalletManagementProvider config={config}>
|
|
84
|
-
{children}
|
|
85
|
-
</WalletManagementProvider>
|
|
86
|
-
)
|
|
48
|
+
return <>{children}</>
|
|
87
49
|
}
|