@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.
@@ -1,2 +1,2 @@
1
1
  export declare const name = "@lifi/widget";
2
- export declare const version = "4.0.0-beta.0";
2
+ export declare const version = "4.0.0-beta.1";
@@ -1,3 +1,3 @@
1
1
  export const name = '@lifi/widget';
2
- export const version = '4.0.0-beta.0';
2
+ export const version = '4.0.0-beta.1';
3
3
  //# sourceMappingURL=version.js.map
@@ -1,5 +1,5 @@
1
1
  import type { WidgetProviderProps } from '@lifi/widget-provider';
2
- import { type PropsWithChildren, type ReactNode } from 'react';
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 { WalletManagementProvider } from '@lifi/wallet-management';
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
- // Initialize SDK client with providers wrapping the wallet menu provider
30
- useInitializeSDKProviders();
31
- const config = useMemo(() => {
32
- return {
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
- i18n.resolvedLanguage,
39
- internalChainTypes,
40
- walletConfig?.walletEcosystemsOrder,
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":";AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAElE,OAAO,EAIL,OAAO,EACP,MAAM,GACP,MAAM,OAAO,CAAA;AACd,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;IAEvC,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;IAE1C,2EAA2E;IAC3E,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE;QACrC,IACE,gBAAgB,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;YACpD,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAC5B,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,KAAK,CAAC,CACnD,EACD,CAAC;YACD,OAAO,gBAAgB,CAAC,OAAO,CAAA;QACjC,CAAC;QACD,gBAAgB,CAAC,OAAO,GAAG,SAAS,CAAA;QACpC,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,MAAM,WAAW,GAAG,KAAC,kBAAkB,cAAE,QAAQ,GAAsB,CAAA;IAEvE,OAAO,iBAAiB,CAAC,WAAW,CAClC,CAAC,GAAG,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAC1B,KAAC,iBAAiB,IAEhB,6BAA6B,EAC3B,YAAY,EAAE,6BAA6B,EAE7C,MAAM,EAAE,MAAM,IAAI,EAAE,YAEnB,GAAG,IANC,iBAAiB,CAAC,IAAI,CAOT,CACrB,EACD,WAAW,CACZ,CAAA;AACH,CAAC,CAAA;AAED,MAAM,kBAAkB,GAA0B,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACjE,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAA;IAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,cAAc,EAAE,CAAA;IACjC,MAAM,EAAE,kBAAkB,EAAE,GAAG,yBAAyB,EAAE,CAAA;IAE1D,yEAAyE;IACzE,yBAAyB,EAAE,CAAA;IAE3B,MAAM,MAAM,GAA2B,OAAO,CAAC,GAAG,EAAE;QAClD,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,gBAAyB;YACtC,iBAAiB,EAAE,kBAAkB;YACrC,qBAAqB,EAAE,YAAY,EAAE,qBAAqB;SAC3D,CAAA;IACH,CAAC,EAAE;QACD,IAAI,CAAC,gBAAgB;QACrB,kBAAkB;QAClB,YAAY,EAAE,qBAAqB;KACpC,CAAC,CAAA;IAEF,OAAO,CACL,KAAC,wBAAwB,IAAC,MAAM,EAAE,MAAM,YACrC,QAAQ,GACgB,CAC5B,CAAA;AACH,CAAC,CAAA"}
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.0",
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.0",
51
- "@lifi/widget-provider": "4.0.0-beta.0"
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",
@@ -1,2 +1,2 @@
1
1
  export const name = '@lifi/widget'
2
- export const version = '4.0.0-beta.0'
2
+ export const version = '4.0.0-beta.1'
@@ -1,13 +1,6 @@
1
- import type { WalletManagementConfig } from '@lifi/wallet-management'
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
- const prevProvidersRef = useRef(providers)
29
-
30
- // Memoize providers to maintain referential stability and prevent remounts
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 memoizedProviders.reduceRight(
47
- (acc, ProviderComponent) => (
48
- <ProviderComponent
49
- key={ProviderComponent.name}
50
- forceInternalWalletManagement={
51
- walletConfig?.forceInternalWalletManagement
52
- }
53
- chains={chains ?? []}
54
- >
55
- {acc}
56
- </ProviderComponent>
57
- ),
58
- baseContent
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 WalletMenuProvider: FC<PropsWithChildren> = ({ children }) => {
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
  }