@lifi/widget 3.4.0-beta.5 → 3.4.0

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.
Files changed (123) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/_esm/components/AppContainer.d.ts +0 -1
  3. package/_esm/components/AppContainer.js +53 -24
  4. package/_esm/components/AppContainer.js.map +1 -1
  5. package/_esm/components/ChainSelect/useChainSelect.js +10 -2
  6. package/_esm/components/ChainSelect/useChainSelect.js.map +1 -1
  7. package/_esm/components/Header/Header.d.ts +2 -0
  8. package/_esm/components/Header/Header.js +8 -1
  9. package/_esm/components/Header/Header.js.map +1 -1
  10. package/_esm/components/Header/Header.style.d.ts +3 -0
  11. package/_esm/components/Header/Header.style.js +27 -11
  12. package/_esm/components/Header/Header.style.js.map +1 -1
  13. package/_esm/components/Routes/RoutesExpanded.js +3 -3
  14. package/_esm/components/Routes/RoutesExpanded.js.map +1 -1
  15. package/_esm/components/Routes/RoutesExpanded.style.d.ts +8 -1
  16. package/_esm/components/Routes/RoutesExpanded.style.js +22 -5
  17. package/_esm/components/Routes/RoutesExpanded.style.js.map +1 -1
  18. package/_esm/components/TokenList/TokenList.js +1 -3
  19. package/_esm/components/TokenList/TokenList.js.map +1 -1
  20. package/_esm/components/TokenList/types.d.ts +1 -0
  21. package/_esm/components/TokenList/useTokenSelect.js +7 -2
  22. package/_esm/components/TokenList/useTokenSelect.js.map +1 -1
  23. package/_esm/config/coinbase.d.ts +2 -0
  24. package/_esm/config/coinbase.js +6 -0
  25. package/_esm/config/coinbase.js.map +1 -0
  26. package/_esm/config/constants.d.ts +1 -0
  27. package/_esm/config/constants.js +2 -0
  28. package/_esm/config/constants.js.map +1 -0
  29. package/_esm/config/metaMask.d.ts +2 -0
  30. package/_esm/config/metaMask.js +11 -0
  31. package/_esm/config/metaMask.js.map +1 -0
  32. package/_esm/config/version.d.ts +1 -1
  33. package/_esm/config/version.js +1 -1
  34. package/_esm/config/version.js.map +1 -1
  35. package/_esm/config/walletConnect.d.ts +2 -1
  36. package/_esm/config/walletConnect.js +3 -1
  37. package/_esm/config/walletConnect.js.map +1 -1
  38. package/_esm/hooks/{useContentHeight.d.ts → useSetContentHeight.d.ts} +0 -1
  39. package/_esm/hooks/useSetContentHeight.js +19 -0
  40. package/_esm/hooks/useSetContentHeight.js.map +1 -0
  41. package/_esm/hooks/useWallets.d.ts +6 -0
  42. package/_esm/hooks/useWallets.js +80 -0
  43. package/_esm/hooks/useWallets.js.map +1 -0
  44. package/_esm/i18n/en.json +1 -0
  45. package/_esm/index.d.ts +2 -0
  46. package/_esm/index.js +2 -0
  47. package/_esm/index.js.map +1 -1
  48. package/_esm/pages/MainPage/MainPage.js +2 -2
  49. package/_esm/pages/MainPage/MainPage.js.map +1 -1
  50. package/_esm/pages/SelectTokenPage/SelectTokenPage.js +8 -9
  51. package/_esm/pages/SelectTokenPage/SelectTokenPage.js.map +1 -1
  52. package/_esm/pages/SelectTokenPage/useTokenListHeight.d.ts +12 -0
  53. package/_esm/pages/SelectTokenPage/useTokenListHeight.js +70 -0
  54. package/_esm/pages/SelectTokenPage/useTokenListHeight.js.map +1 -0
  55. package/_esm/pages/SelectWalletPage/EVMListItemButton.d.ts +2 -1
  56. package/_esm/pages/SelectWalletPage/EVMListItemButton.js +2 -1
  57. package/_esm/pages/SelectWalletPage/EVMListItemButton.js.map +1 -1
  58. package/_esm/pages/SelectWalletPage/SelectWalletPage.js +7 -44
  59. package/_esm/pages/SelectWalletPage/SelectWalletPage.js.map +1 -1
  60. package/_esm/pages/SendToWallet/BookmarksPage.js +4 -2
  61. package/_esm/pages/SendToWallet/BookmarksPage.js.map +1 -1
  62. package/_esm/pages/SendToWallet/SendToWalletPage.js +6 -4
  63. package/_esm/pages/SendToWallet/SendToWalletPage.js.map +1 -1
  64. package/_esm/pages/SendToWallet/SendToWalletPage.style.d.ts +10 -0
  65. package/_esm/pages/SendToWallet/SendToWalletPage.style.js +17 -5
  66. package/_esm/pages/SendToWallet/SendToWalletPage.style.js.map +1 -1
  67. package/_esm/pages/TransactionDetailsPage/TransactionDetailsPage.js +0 -1
  68. package/_esm/pages/TransactionDetailsPage/TransactionDetailsPage.js.map +1 -1
  69. package/_esm/pages/TransactionPage/ExchangeRateBottomSheet.js +1 -1
  70. package/_esm/pages/TransactionPage/ExchangeRateBottomSheet.js.map +1 -1
  71. package/_esm/pages/TransactionPage/StatusBottomSheet.js +1 -1
  72. package/_esm/pages/TransactionPage/StatusBottomSheet.js.map +1 -1
  73. package/_esm/pages/TransactionPage/TokenValueBottomSheet.js +1 -1
  74. package/_esm/pages/TransactionPage/TokenValueBottomSheet.js.map +1 -1
  75. package/_esm/providers/WalletProvider/EVMBaseProvider.js +7 -9
  76. package/_esm/providers/WalletProvider/EVMBaseProvider.js.map +1 -1
  77. package/_esm/themes/createTheme.js +1 -0
  78. package/_esm/themes/createTheme.js.map +1 -1
  79. package/_esm/themes/types.d.ts +2 -0
  80. package/_esm/types/widget.d.ts +19 -14
  81. package/_esm/types/widget.js.map +1 -1
  82. package/components/AppContainer.tsx +70 -24
  83. package/components/ChainSelect/useChainSelect.ts +11 -3
  84. package/components/Header/Header.style.ts +28 -11
  85. package/components/Header/Header.tsx +11 -0
  86. package/components/Routes/RoutesExpanded.style.ts +30 -5
  87. package/components/Routes/RoutesExpanded.tsx +12 -5
  88. package/components/TokenList/TokenList.tsx +1 -2
  89. package/components/TokenList/types.ts +1 -0
  90. package/components/TokenList/useTokenSelect.ts +8 -2
  91. package/config/coinbase.ts +7 -0
  92. package/config/constants.ts +1 -0
  93. package/config/metaMask.ts +13 -0
  94. package/config/version.ts +1 -1
  95. package/config/walletConnect.ts +5 -1
  96. package/hooks/useSetContentHeight.ts +24 -0
  97. package/hooks/useWallets.ts +147 -0
  98. package/i18n/en.json +1 -0
  99. package/index.ts +2 -0
  100. package/package.json +11 -11
  101. package/pages/MainPage/MainPage.tsx +3 -2
  102. package/pages/SelectTokenPage/SelectTokenPage.tsx +16 -20
  103. package/pages/SelectTokenPage/useTokenListHeight.ts +112 -0
  104. package/pages/SelectWalletPage/EVMListItemButton.tsx +16 -7
  105. package/pages/SelectWalletPage/SelectWalletPage.tsx +7 -65
  106. package/pages/SendToWallet/BookmarksPage.tsx +12 -6
  107. package/pages/SendToWallet/SendToWalletPage.style.tsx +25 -5
  108. package/pages/SendToWallet/SendToWalletPage.tsx +42 -33
  109. package/pages/TransactionDetailsPage/TransactionDetailsPage.tsx +0 -1
  110. package/pages/TransactionPage/ExchangeRateBottomSheet.tsx +1 -1
  111. package/pages/TransactionPage/StatusBottomSheet.tsx +1 -1
  112. package/pages/TransactionPage/TokenValueBottomSheet.tsx +1 -1
  113. package/providers/WalletProvider/EVMBaseProvider.tsx +7 -9
  114. package/themes/createTheme.ts +1 -0
  115. package/themes/types.ts +2 -0
  116. package/types/widget.ts +23 -13
  117. package/_esm/hooks/useContentHeight.js +0 -40
  118. package/_esm/hooks/useContentHeight.js.map +0 -1
  119. package/_esm/pages/SelectWalletPage/utils.d.ts +0 -3
  120. package/_esm/pages/SelectWalletPage/utils.js +0 -18
  121. package/_esm/pages/SelectWalletPage/utils.js.map +0 -1
  122. package/hooks/useContentHeight.ts +0 -53
  123. package/pages/SelectWalletPage/utils.ts +0 -26
@@ -12,9 +12,9 @@ import { BottomSheet } from '../../components/BottomSheet/BottomSheet.js';
12
12
  import type { BottomSheetBase } from '../../components/BottomSheet/types.js';
13
13
  import { Token } from '../../components/Token/Token.js';
14
14
  import { useAvailableChains } from '../../hooks/useAvailableChains.js';
15
- import { useSetContentHeight } from '../../hooks/useContentHeight.js';
16
15
  import { useNavigateBack } from '../../hooks/useNavigateBack.js';
17
16
  import { getProcessMessage } from '../../hooks/useProcessMessage.js';
17
+ import { useSetContentHeight } from '../../hooks/useSetContentHeight.js';
18
18
  import { useTokenBalance } from '../../hooks/useTokenBalance.js';
19
19
  import { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js';
20
20
  import { useFieldActions } from '../../stores/form/useFieldActions.js';
@@ -7,7 +7,7 @@ import { useTranslation } from 'react-i18next';
7
7
  import { BottomSheet } from '../../components/BottomSheet/BottomSheet.js';
8
8
  import type { BottomSheetBase } from '../../components/BottomSheet/types.js';
9
9
  import { FeeBreakdownTooltip } from '../../components/FeeBreakdownTooltip.js';
10
- import { useSetContentHeight } from '../../hooks/useContentHeight.js';
10
+ import { useSetContentHeight } from '../../hooks/useSetContentHeight.js';
11
11
  import { getAccumulatedFeeCostsBreakdown } from '../../utils/fees.js';
12
12
  import { CenterContainer, IconCircle } from './StatusBottomSheet.style.js';
13
13
  import { calculateValueLossPercentage } from './utils.js';
@@ -5,9 +5,10 @@ import {
5
5
  } from '@lifi/wallet-management';
6
6
  import { useRef, type FC, type PropsWithChildren } from 'react';
7
7
  import { WagmiProvider } from 'wagmi';
8
- import { defaultWalletConnectProjectId } from '../../config/walletConnect.js';
8
+ import { defaultCoinbaseConfig } from '../../config/coinbase.js';
9
+ import { defaultMetaMaskConfig } from '../../config/metaMask.js';
10
+ import { defaultWalletConnectConfig } from '../../config/walletConnect.js';
9
11
  import { useAvailableChains } from '../../hooks/useAvailableChains.js';
10
- import { LiFiToolLogo } from '../../icons/lifi.js';
11
12
  import { useWidgetConfig } from '../WidgetProvider/WidgetProvider.js';
12
13
 
13
14
  export const EVMBaseProvider: FC<PropsWithChildren> = ({ children }) => {
@@ -17,16 +18,13 @@ export const EVMBaseProvider: FC<PropsWithChildren> = ({ children }) => {
17
18
 
18
19
  if (!wagmi.current) {
19
20
  wagmi.current = createDefaultWagmiConfig({
20
- walletConnect: walletConfig?.walletConnect ?? {
21
- projectId: defaultWalletConnectProjectId,
22
- },
23
- coinbase: walletConfig?.coinbase ?? {
24
- appName: 'LI.FI',
25
- appLogoUrl: LiFiToolLogo,
26
- },
21
+ coinbase: walletConfig?.coinbase ?? defaultCoinbaseConfig,
22
+ metaMask: walletConfig?.metaMask ?? defaultMetaMaskConfig,
23
+ walletConnect: walletConfig?.walletConnect ?? defaultWalletConnectConfig,
27
24
  wagmiConfig: {
28
25
  ssr: true,
29
26
  },
27
+ lazy: true,
30
28
  });
31
29
  }
32
30
 
@@ -65,6 +65,7 @@ export const createTheme = (
65
65
 
66
66
  return createMuiTheme({
67
67
  container: widgetTheme.container,
68
+ header: widgetTheme.header,
68
69
  navigation: {
69
70
  edge: true,
70
71
  ...widgetTheme.navigation,
package/themes/types.ts CHANGED
@@ -26,11 +26,13 @@ declare module '@mui/material/styles' {
26
26
  interface Theme {
27
27
  shape: Shape;
28
28
  container: CSSProperties;
29
+ header: CSSProperties;
29
30
  navigation: NavigationProps;
30
31
  }
31
32
  interface ThemeOptions {
32
33
  shape?: Partial<Shape>;
33
34
  container?: CSSProperties;
35
+ header?: CSSProperties;
34
36
  navigation?: NavigationProps;
35
37
  }
36
38
  interface ComponentNameToClassKey {
package/types/widget.ts CHANGED
@@ -18,6 +18,7 @@ import type {
18
18
  import type { TypographyOptions } from '@mui/material/styles/createTypography.js';
19
19
  import type {
20
20
  CoinbaseWalletParameters,
21
+ MetaMaskParameters,
21
22
  WalletConnectParameters,
22
23
  } from '@wagmi/connectors';
23
24
  import type { CSSProperties, ReactNode, RefObject } from 'react';
@@ -53,6 +54,7 @@ export type WidgetThemeComponents = Pick<
53
54
  | 'MuiInputCard'
54
55
  | 'MuiTabs'
55
56
  >;
57
+
56
58
  export type WidgetTheme = {
57
59
  palette?: Pick<
58
60
  PaletteOptions,
@@ -62,6 +64,7 @@ export type WidgetTheme = {
62
64
  typography?: TypographyOptions;
63
65
  components?: WidgetThemeComponents;
64
66
  container?: CSSProperties;
67
+ header?: CSSProperties;
65
68
  playground?: CSSProperties;
66
69
  navigation?: NavigationProps;
67
70
  };
@@ -96,6 +99,7 @@ export interface WidgetWalletConfig {
96
99
  onConnect?(): void;
97
100
  walletConnect?: WalletConnectParameters;
98
101
  coinbase?: CoinbaseWalletParameters;
102
+ metaMask?: MetaMaskParameters;
99
103
  }
100
104
 
101
105
  export interface WidgetSDKConfig
@@ -153,6 +157,22 @@ export interface AllowDeny<T> {
153
157
  deny?: T[];
154
158
  }
155
159
 
160
+ export type WidgetChains = {
161
+ from?: AllowDeny<number>;
162
+ to?: AllowDeny<number>;
163
+ types?: AllowDeny<ChainType>;
164
+ } & AllowDeny<number>;
165
+
166
+ export type WidgetTokens = {
167
+ featured?: StaticToken[];
168
+ include?: Token[];
169
+ popular?: StaticToken[];
170
+ } & AllowDeny<BaseToken>;
171
+
172
+ export type WidgetLanguages = {
173
+ default?: LanguageKey;
174
+ } & AllowDeny<LanguageKey>;
175
+
156
176
  export interface WidgetConfig {
157
177
  fromChain?: number;
158
178
  toChain?: number;
@@ -201,19 +221,9 @@ export interface WidgetConfig {
201
221
 
202
222
  bridges?: AllowDeny<string>;
203
223
  exchanges?: AllowDeny<string>;
204
- chains?: {
205
- from?: AllowDeny<number>;
206
- to?: AllowDeny<number>;
207
- types?: AllowDeny<ChainType>;
208
- } & AllowDeny<number>;
209
- tokens?: {
210
- featured?: StaticToken[];
211
- include?: Token[];
212
- popular?: StaticToken[];
213
- } & AllowDeny<BaseToken>;
214
- languages?: {
215
- default?: LanguageKey;
216
- } & AllowDeny<LanguageKey>;
224
+ chains?: WidgetChains;
225
+ tokens?: WidgetTokens;
226
+ languages?: WidgetLanguages;
217
227
  languageResources?: LanguageResources;
218
228
  }
219
229
 
@@ -1,40 +0,0 @@
1
- import { useLayoutEffect, useState } from 'react';
2
- import { ElementId, createElementId } from '../utils/elements.js';
3
- import { useDefaultElementId } from './useDefaultElementId.js';
4
- import { getScrollableContainer } from './useScrollableContainer.js';
5
- const getContentHeight = (elementId) => {
6
- const containerElement = document.getElementById(createElementId(ElementId.ScrollableContainer, elementId));
7
- const headerElement = document.getElementById(createElementId(ElementId.Header, elementId));
8
- if (!containerElement || !headerElement) {
9
- console.warn(`Can't find ${ElementId.ScrollableContainer} or ${ElementId.Header} id.`);
10
- return 0;
11
- }
12
- const { height: containerHeight } = containerElement.getBoundingClientRect();
13
- const { height: headerHeight } = headerElement.getBoundingClientRect();
14
- return containerHeight - headerHeight;
15
- };
16
- export const useContentHeight = () => {
17
- const elementId = useDefaultElementId();
18
- const [contentHeight, setContentHeight] = useState(0);
19
- useLayoutEffect(() => {
20
- setContentHeight(getContentHeight(elementId));
21
- // eslint-disable-next-line react-hooks/exhaustive-deps
22
- }, []);
23
- return contentHeight;
24
- };
25
- export const useSetContentHeight = (ref) => {
26
- const elementId = useDefaultElementId();
27
- useLayoutEffect(() => {
28
- const scrollableContainer = getScrollableContainer(elementId);
29
- if (!scrollableContainer ||
30
- !ref.current ||
31
- ref.current?.clientHeight <= scrollableContainer?.clientHeight) {
32
- return;
33
- }
34
- scrollableContainer.style.height = `${ref.current.clientHeight}px`;
35
- return () => {
36
- scrollableContainer.style.removeProperty('height');
37
- };
38
- }, [elementId, ref]);
39
- };
40
- //# sourceMappingURL=useContentHeight.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useContentHeight.js","sourceRoot":"","sources":["../../hooks/useContentHeight.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAE,EAAE;IAC7C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAC9C,eAAe,CAAC,SAAS,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAC1D,CAAC;IACF,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAC3C,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAC7C,CAAC;IACF,IAAI,CAAC,gBAAgB,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,CACV,cAAc,SAAS,CAAC,mBAAmB,OAAO,SAAS,CAAC,MAAM,MAAM,CACzE,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,CAAC;IAC7E,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC;IACvE,OAAO,eAAe,GAAG,YAAY,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IACxC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAS,CAAC,CAAC,CAAC;IAC9D,eAAe,CAAC,GAAG,EAAE;QACnB,gBAAgB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9C,uDAAuD;IACzD,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAA8C,EAC9C,EAAE;IACF,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IACxC,eAAe,CAAC,GAAG,EAAE;QACnB,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAC9D,IACE,CAAC,mBAAmB;YACpB,CAAC,GAAG,CAAC,OAAO;YACZ,GAAG,CAAC,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,YAAY,EAC9D,CAAC;YACD,OAAO;QACT,CAAC;QACD,mBAAmB,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC;QACnE,OAAO,GAAG,EAAE;YACV,mBAAmB,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACrD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;AACvB,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { Wallet } from '@solana/wallet-adapter-react';
2
- import type { Connector } from 'wagmi';
3
- export declare const walletComparator: (a: Connector | Wallet, b: Connector | Wallet) => number;
@@ -1,18 +0,0 @@
1
- import { getWalletPriority } from '@lifi/wallet-management';
2
- export const walletComparator = (a, b) => {
3
- let aId = a.id || a.adapter?.name;
4
- let bId = b.id || b.adapter?.name;
5
- const priorityA = getWalletPriority(aId);
6
- const priorityB = getWalletPriority(bId);
7
- if (priorityA !== priorityB) {
8
- return priorityA - priorityB;
9
- }
10
- if (aId < bId) {
11
- return -1;
12
- }
13
- if (aId > bId) {
14
- return 1;
15
- }
16
- return 0;
17
- };
18
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../pages/SelectWalletPage/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAI5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,CAAqB,EACrB,CAAqB,EACrB,EAAE;IACF,IAAI,GAAG,GAAI,CAAe,CAAC,EAAE,IAAK,CAAY,CAAC,OAAO,EAAE,IAAI,CAAC;IAC7D,IAAI,GAAG,GAAI,CAAe,CAAC,EAAE,IAAK,CAAY,CAAC,OAAO,EAAE,IAAI,CAAC;IAE7D,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAEzC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC"}
@@ -1,53 +0,0 @@
1
- import type { MutableRefObject } from 'react';
2
- import { useLayoutEffect, useState } from 'react';
3
- import { ElementId, createElementId } from '../utils/elements.js';
4
- import { useDefaultElementId } from './useDefaultElementId.js';
5
- import { getScrollableContainer } from './useScrollableContainer.js';
6
-
7
- const getContentHeight = (elementId: string) => {
8
- const containerElement = document.getElementById(
9
- createElementId(ElementId.ScrollableContainer, elementId),
10
- );
11
- const headerElement = document.getElementById(
12
- createElementId(ElementId.Header, elementId),
13
- );
14
- if (!containerElement || !headerElement) {
15
- console.warn(
16
- `Can't find ${ElementId.ScrollableContainer} or ${ElementId.Header} id.`,
17
- );
18
- return 0;
19
- }
20
- const { height: containerHeight } = containerElement.getBoundingClientRect();
21
- const { height: headerHeight } = headerElement.getBoundingClientRect();
22
- return containerHeight - headerHeight;
23
- };
24
-
25
- export const useContentHeight = () => {
26
- const elementId = useDefaultElementId();
27
- const [contentHeight, setContentHeight] = useState<number>(0);
28
- useLayoutEffect(() => {
29
- setContentHeight(getContentHeight(elementId));
30
- // eslint-disable-next-line react-hooks/exhaustive-deps
31
- }, []);
32
- return contentHeight;
33
- };
34
-
35
- export const useSetContentHeight = (
36
- ref: MutableRefObject<HTMLElement | undefined>,
37
- ) => {
38
- const elementId = useDefaultElementId();
39
- useLayoutEffect(() => {
40
- const scrollableContainer = getScrollableContainer(elementId);
41
- if (
42
- !scrollableContainer ||
43
- !ref.current ||
44
- ref.current?.clientHeight <= scrollableContainer?.clientHeight
45
- ) {
46
- return;
47
- }
48
- scrollableContainer.style.height = `${ref.current.clientHeight}px`;
49
- return () => {
50
- scrollableContainer.style.removeProperty('height');
51
- };
52
- }, [elementId, ref]);
53
- };
@@ -1,26 +0,0 @@
1
- import { getWalletPriority } from '@lifi/wallet-management';
2
- import type { Wallet } from '@solana/wallet-adapter-react';
3
- import type { Connector } from 'wagmi';
4
-
5
- export const walletComparator = (
6
- a: Connector | Wallet,
7
- b: Connector | Wallet,
8
- ) => {
9
- let aId = (a as Connector).id || (a as Wallet).adapter?.name;
10
- let bId = (b as Connector).id || (b as Wallet).adapter?.name;
11
-
12
- const priorityA = getWalletPriority(aId);
13
- const priorityB = getWalletPriority(bId);
14
-
15
- if (priorityA !== priorityB) {
16
- return priorityA - priorityB;
17
- }
18
-
19
- if (aId < bId) {
20
- return -1;
21
- }
22
- if (aId > bId) {
23
- return 1;
24
- }
25
- return 0;
26
- };