@rango-dev/widget-embedded 0.21.1-next.0 → 0.21.1-next.2

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 (40) hide show
  1. package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
  2. package/dist/components/Layout/Layout.d.ts.map +1 -1
  3. package/dist/components/Layout/Layout.styles.d.ts.map +1 -1
  4. package/dist/components/SwapDetailsModal/SwapDetailsCompleteModal.d.ts.map +1 -1
  5. package/dist/components/SwapDetailsModal/SwapDetailsModal.WalletState.d.ts.map +1 -1
  6. package/dist/components/SwapDetailsModal/SwapDetailsModal.d.ts.map +1 -1
  7. package/dist/components/WalletModal/WalletModal.d.ts.map +1 -1
  8. package/dist/constants/index.d.ts +7 -1
  9. package/dist/constants/index.d.ts.map +1 -1
  10. package/dist/hooks/useWalletList.d.ts +1 -0
  11. package/dist/hooks/useWalletList.d.ts.map +1 -1
  12. package/dist/index.d.ts +2 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +2 -2
  15. package/dist/index.js.map +4 -4
  16. package/dist/pages/WalletsPage.d.ts.map +1 -1
  17. package/dist/store/slices/config.d.ts.map +1 -1
  18. package/dist/types/config.d.ts +1 -0
  19. package/dist/types/config.d.ts.map +1 -1
  20. package/dist/utils/common.d.ts.map +1 -1
  21. package/dist/utils/wallets.d.ts +1 -0
  22. package/dist/utils/wallets.d.ts.map +1 -1
  23. package/package.json +2 -2
  24. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +2 -2
  25. package/src/components/ConfirmWalletsModal/WalletList.tsx +26 -20
  26. package/src/components/Layout/Layout.styles.ts +0 -1
  27. package/src/components/Layout/Layout.tsx +5 -2
  28. package/src/components/SwapDetailsModal/SwapDetailsCompleteModal.tsx +4 -2
  29. package/src/components/SwapDetailsModal/SwapDetailsModal.WalletState.tsx +29 -3
  30. package/src/components/SwapDetailsModal/SwapDetailsModal.tsx +4 -2
  31. package/src/components/WalletModal/WalletModal.tsx +4 -2
  32. package/src/constants/index.ts +7 -1
  33. package/src/hooks/useWalletList.ts +20 -4
  34. package/src/index.ts +2 -0
  35. package/src/pages/Home.tsx +2 -2
  36. package/src/pages/WalletsPage.tsx +24 -18
  37. package/src/store/slices/config.ts +1 -0
  38. package/src/types/config.ts +1 -0
  39. package/src/utils/common.ts +2 -2
  40. package/src/utils/wallets.ts +4 -0
@@ -1 +1 @@
1
- {"version":3,"file":"WalletsPage.d.ts","sourceRoot":"","sources":["../../src/pages/WalletsPage.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAuBxC,eAAO,MAAM,mBAAmB,OAAQ,CAAC;AACzC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,wBAAgB,WAAW,sBAoE1B"}
1
+ {"version":3,"file":"WalletsPage.d.ts","sourceRoot":"","sources":["../../src/pages/WalletsPage.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAuBxC,eAAO,MAAM,mBAAmB,OAAQ,CAAC;AACzC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,wBAAgB,WAAW,sBA0E1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/store/slices/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,QAAQ,CAAC;AAE1D,eAAO,MAAM,cAAc,EAAE,YAK5B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,YAAY,CAAC;IAErB,YAAY,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,2BAA2B,CACzD,YAAY,EACZ,WAAW,EACX,WAAW,CAiBZ,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/store/slices/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,QAAQ,CAAC;AAE1D,eAAO,MAAM,cAAc,EAAE,YAM5B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,YAAY,CAAC;IAErB,YAAY,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,2BAA2B,CACzD,YAAY,EACZ,WAAW,EACX,WAAW,CAiBZ,CAAC"}
@@ -172,6 +172,7 @@ export type Features = Partial<Record<'theme' | 'language' | 'connectWalletButto
172
172
  export type WidgetConfig = {
173
173
  apiKey: string;
174
174
  apiUrl?: string;
175
+ title?: string;
175
176
  walletConnectProjectId?: string;
176
177
  affiliate?: WidgetAffiliate;
177
178
  amount?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/utils/common.ts"],"names":[],"mappings":"AAEA,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAEtD;AAED,wBAAgB,QAAQ,CACtB,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAC3B,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,WAK5B;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAGvB,GAAG,UAS9B;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAGtE;AAED,eAAO,MAAM,YAAY,mBACkC,CAAC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/utils/common.ts"],"names":[],"mappings":"AAEA,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAEtD;AAED,wBAAgB,QAAQ,CACtB,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAC3B,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,WAK5B;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAGvB,GAAG,UAS9B;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAGtE;AAED,eAAO,MAAM,YAAY,mBACyC,CAAC"}
@@ -29,4 +29,5 @@ export declare function getAddress({ chain, connectedWallets, walletType, }: {
29
29
  export declare function createTokenHash(token: Asset): TokenHash;
30
30
  export declare function makeTokensBalance(connectedWallets: ConnectedWallet[]): TokensBalance;
31
31
  export declare const isFetchingBalance: (connectedWallets: ConnectedWallet[], blockchain: string) => boolean;
32
+ export declare function hashWalletsState(walletsInfo: ModalWalletInfo[]): string;
32
33
  //# sourceMappingURL=wallets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallets.d.ts","sourceRoot":"","sources":["../../src/utils/wallets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallets.d.ts","sourceRoot":"","sources":["../../src/utils/wallets.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rango-dev/widget-embedded",
3
- "version": "0.21.1-next.0",
3
+ "version": "0.21.1-next.2",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "source": "./src/index.ts",
@@ -25,7 +25,7 @@
25
25
  "@rango-dev/queue-manager-core": "^0.25.0",
26
26
  "@rango-dev/queue-manager-rango-preset": "^0.26.0",
27
27
  "@rango-dev/queue-manager-react": "^0.25.0",
28
- "@rango-dev/ui": "^0.27.1-next.0",
28
+ "@rango-dev/ui": "^0.27.1-next.1",
29
29
  "@rango-dev/wallets-react": "^0.12.0",
30
30
  "@rango-dev/wallets-shared": "^0.26.0",
31
31
  "bignumber.js": "^9.1.1",
@@ -18,7 +18,7 @@ import {
18
18
  import React, { useEffect, useState } from 'react';
19
19
  import { useNavigate } from 'react-router-dom';
20
20
 
21
- import { RANGO_SWAP_BOX_ID } from '../../constants';
21
+ import { WIDGET_UI_ID } from '../../constants';
22
22
  import { getQuoteErrorMessage } from '../../constants/errors';
23
23
  import { getQuoteUpdateWarningMessage } from '../../constants/warnings';
24
24
  import { useAppStore } from '../../store/AppStore';
@@ -228,7 +228,7 @@ export function ConfirmWalletsModal(props: PropTypes) {
228
228
  }, [connectedWallets.length]);
229
229
 
230
230
  const modalContainer = document.getElementById(
231
- RANGO_SWAP_BOX_ID
231
+ WIDGET_UI_ID.SWAP_BOX_ID
232
232
  ) as HTMLDivElement;
233
233
 
234
234
  const navigate = useNavigate();
@@ -18,7 +18,7 @@ import {
18
18
  import React, { useEffect, useState } from 'react';
19
19
 
20
20
  import { useWallets } from '../..';
21
- import { RANGO_SWAP_BOX_ID } from '../../constants';
21
+ import { WIDGET_UI_ID } from '../../constants';
22
22
  import { useWalletList } from '../../hooks/useWalletList';
23
23
  import {
24
24
  TIME_TO_CLOSE_MODAL,
@@ -59,23 +59,24 @@ export function WalletList(props: PropTypes) {
59
59
  useState<'in-progress' | 'completed' | 'rejected' | null>(null);
60
60
  const { suggestAndConnect } = useWallets();
61
61
  let modalTimerId: ReturnType<typeof setTimeout> | null = null;
62
- const { list, error, handleClick } = useWalletList({
63
- config,
64
- chain,
65
- onBeforeConnect: (type) => {
66
- modalTimerId = setTimeout(() => {
67
- setOpenWalletStateModal(type);
68
- }, TIME_TO_IGNORE_MODAL);
69
- },
70
- onConnect: () => {
71
- if (modalTimerId) {
72
- clearTimeout(modalTimerId);
73
- }
74
- setTimeout(() => {
75
- setOpenWalletStateModal('');
76
- }, TIME_TO_CLOSE_MODAL);
77
- },
78
- });
62
+ const { list, error, handleClick, disconnectConnectingWallets } =
63
+ useWalletList({
64
+ config,
65
+ chain,
66
+ onBeforeConnect: (type) => {
67
+ modalTimerId = setTimeout(() => {
68
+ setOpenWalletStateModal(type);
69
+ }, TIME_TO_IGNORE_MODAL);
70
+ },
71
+ onConnect: () => {
72
+ if (modalTimerId) {
73
+ clearTimeout(modalTimerId);
74
+ }
75
+ setTimeout(() => {
76
+ setOpenWalletStateModal('');
77
+ }, TIME_TO_CLOSE_MODAL);
78
+ },
79
+ });
79
80
  const [sortedList, setSortedList] = useState<WalletInfo[]>(list);
80
81
  const numberOfSupportedWallets = list.length;
81
82
  const shouldShowMoreWallets = limit && numberOfSupportedWallets - limit > 0;
@@ -111,7 +112,7 @@ export function WalletList(props: PropTypes) {
111
112
  }, [JSON.stringify(list)]);
112
113
 
113
114
  const modalContainer = document.getElementById(
114
- RANGO_SWAP_BOX_ID
115
+ WIDGET_UI_ID.SWAP_BOX_ID
115
116
  ) as HTMLDivElement;
116
117
 
117
118
  useEffect(() => {
@@ -133,6 +134,11 @@ export function WalletList(props: PropTypes) {
133
134
  };
134
135
  }, [addingExperimentalChainStatus]);
135
136
 
137
+ const handleCloseWalletModal = () => {
138
+ disconnectConnectingWallets();
139
+ setOpenWalletStateModal('');
140
+ };
141
+
136
142
  return (
137
143
  <>
138
144
  {sortedList.slice(0, limit).map((wallet) => {
@@ -193,7 +199,7 @@ export function WalletList(props: PropTypes) {
193
199
  <>
194
200
  <WalletModal
195
201
  open={openWalletStateModal === wallet.type}
196
- onClose={() => setOpenWalletStateModal('')}
202
+ onClose={handleCloseWalletModal}
197
203
  image={wallet.image}
198
204
  state={wallet.state}
199
205
  error={error}
@@ -36,7 +36,6 @@ export const Content = styled('div', {
36
36
  overflowY: 'auto',
37
37
  });
38
38
  export const Footer = styled('div', {
39
- backgroundColor: '$background',
40
39
  '& .footer__content': {
41
40
  padding: '$0 $20',
42
41
  },
@@ -6,7 +6,7 @@ import { useManager } from '@rango-dev/queue-manager-react';
6
6
  import { BottomLogo, Divider, Header } from '@rango-dev/ui';
7
7
  import React, { useEffect, useRef } from 'react';
8
8
 
9
- import { RANGO_SWAP_BOX_ID } from '../../constants';
9
+ import { WIDGET_UI_ID } from '../../constants';
10
10
  import { useNavigateBack } from '../../hooks/useNavigateBack';
11
11
  import { useTheme } from '../../hooks/useTheme';
12
12
  import { useAppStore } from '../../store/AppStore';
@@ -76,7 +76,10 @@ function Layout(props: PropsWithChildren<PropTypes>) {
76
76
  }, []);
77
77
 
78
78
  return (
79
- <Container height={height} id={RANGO_SWAP_BOX_ID} className={activeTheme()}>
79
+ <Container
80
+ height={height}
81
+ id={WIDGET_UI_ID.SWAP_BOX_ID}
82
+ className={activeTheme()}>
80
83
  <Header
81
84
  prefix={<>{showBackButton && <BackButton onClick={navigateBack} />}</>}
82
85
  title={header.title}
@@ -12,7 +12,7 @@ import {
12
12
  import React from 'react';
13
13
  import { useNavigate } from 'react-router-dom';
14
14
 
15
- import { RANGO_SWAP_BOX_ID } from '../../constants';
15
+ import { WIDGET_UI_ID } from '../../constants';
16
16
  import { getContainer } from '../../utils/common';
17
17
 
18
18
  export function SwapDetailsCompleteModal(props: CompleteModalPropTypes) {
@@ -36,7 +36,9 @@ export function SwapDetailsCompleteModal(props: CompleteModalPropTypes) {
36
36
  <Modal
37
37
  open={open}
38
38
  onClose={onClose}
39
- container={document.getElementById(RANGO_SWAP_BOX_ID) || document.body}>
39
+ container={
40
+ document.getElementById(WIDGET_UI_ID.SWAP_BOX_ID) || document.body
41
+ }>
40
42
  {status === 'success' ? (
41
43
  <MessageBox type="success" title={i18n.t('Swap Successful')}>
42
44
  <TokenAmount
@@ -1,8 +1,8 @@
1
1
  import type { WalletStateContentProps } from './SwapDetailsModal.types';
2
2
 
3
- import { MessageBox, Wallet } from '@rango-dev/ui';
3
+ import { MessageBox, Wallet, WalletState } from '@rango-dev/ui';
4
4
  import { useWallets } from '@rango-dev/wallets-react';
5
- import React from 'react';
5
+ import React, { useEffect, useRef } from 'react';
6
6
 
7
7
  import { getContainer } from '../../utils/common';
8
8
  import { mapStatusToWalletState } from '../../utils/wallets';
@@ -18,14 +18,40 @@ export const WalletStateContent = (props: WalletStateContentProps) => {
18
18
  showWalletButton,
19
19
  walletButtonDisabled,
20
20
  } = props;
21
- const { connect, getWalletInfo, state } = useWallets();
21
+ const { connect, getWalletInfo, state, disconnect } = useWallets();
22
22
  const walletType = currentStepWallet?.walletType;
23
23
  const walletState = walletType
24
24
  ? mapStatusToWalletState(state(walletType))
25
25
  : null;
26
+ const componentWillUnmount = useRef(false);
27
+
26
28
  const walletInfo = walletType ? getWalletInfo(walletType) : null;
27
29
  const shouldShowWallet =
28
30
  showWalletButton && !!walletType && !!walletState && !!walletInfo;
31
+
32
+ /*
33
+ * The order of useEffects is crucial.
34
+ * 1- The first useEffect for componentWillUnmount sets its value to true
35
+ */
36
+ useEffect(() => {
37
+ return () => {
38
+ componentWillUnmount.current = true;
39
+ };
40
+ }, []);
41
+
42
+ // 2- The second useEffect checks if componentWillUnmount is true then it disconnects connecting wallet
43
+ useEffect(() => {
44
+ return () => {
45
+ if (
46
+ componentWillUnmount.current &&
47
+ walletType &&
48
+ walletState === WalletState.CONNECTING
49
+ ) {
50
+ void disconnect(walletType);
51
+ }
52
+ };
53
+ }, [walletState]);
54
+
29
55
  return (
30
56
  <>
31
57
  <MessageBox type={type} title={title} description={message} />
@@ -4,7 +4,7 @@ import { Modal } from '@rango-dev/ui';
4
4
  import { PendingSwapNetworkStatus } from 'rango-types';
5
5
  import React from 'react';
6
6
 
7
- import { RANGO_SWAP_BOX_ID } from '../../constants';
7
+ import { WIDGET_UI_ID } from '../../constants';
8
8
 
9
9
  import { CancelContent } from './SwapDetailsModal.Cancel';
10
10
  import { DeleteContent } from './SwapDetailsModal.Delete';
@@ -31,7 +31,9 @@ export function SwapDetailsModal(props: ModalPropTypes) {
31
31
  <Modal
32
32
  open={!!state}
33
33
  onClose={onClose}
34
- container={document.getElementById(RANGO_SWAP_BOX_ID) || document.body}>
34
+ container={
35
+ document.getElementById(WIDGET_UI_ID.SWAP_BOX_ID) || document.body
36
+ }>
35
37
  {showWalletStateContent && (
36
38
  <WalletStateContent
37
39
  type={modalNetworkValues[state].type}
@@ -3,7 +3,7 @@ import type { PropTypes } from './WalletModal.types';
3
3
  import { Divider, Modal } from '@rango-dev/ui';
4
4
  import React from 'react';
5
5
 
6
- import { RANGO_SWAP_BOX_ID } from '../../constants';
6
+ import { WIDGET_UI_ID } from '../../constants';
7
7
 
8
8
  import { ModalContent } from './WalletModalContent';
9
9
 
@@ -14,7 +14,9 @@ export function WalletModal(props: PropTypes) {
14
14
  <Modal
15
15
  open={open}
16
16
  onClose={onClose}
17
- container={document.getElementById(RANGO_SWAP_BOX_ID) || document.body}>
17
+ container={
18
+ document.getElementById(WIDGET_UI_ID.SWAP_BOX_ID) || document.body
19
+ }>
18
20
  <ModalContent {...otherProps} />
19
21
  <Divider direction="vertical" size={32} />
20
22
  </Modal>
@@ -1,4 +1,10 @@
1
+ import { UI_ID } from '@rango-dev/ui';
2
+
1
3
  export const RANGO_PUBLIC_API_KEY = 'c6381a79-2817-4602-83bf-6a641a409e32';
2
4
  export const DEFAULT_BASE_URL = 'https://api.rango.exchange';
3
- export const RANGO_SWAP_BOX_ID = 'rango-swap-box';
4
5
  export const SCANNER_BASE_URL = 'https://scan.rango.exchange';
6
+
7
+ export const WIDGET_UI_ID = {
8
+ SWAP_BOX_ID: 'rango-swap-box',
9
+ ...UI_ID,
10
+ };
@@ -9,12 +9,13 @@ import {
9
9
  type WalletType,
10
10
  WalletTypes,
11
11
  } from '@rango-dev/wallets-shared';
12
- import { useEffect, useState } from 'react';
12
+ import { useCallback, useEffect, useRef, useState } from 'react';
13
13
 
14
14
  import { useAppStore } from '../store/AppStore';
15
15
  import { useWalletsStore } from '../store/wallets';
16
16
  import { configWalletsToWalletName } from '../utils/providers';
17
17
  import {
18
+ hashWalletsState,
18
19
  isExperimentalChain,
19
20
  mapWalletTypesToWalletInfo,
20
21
  sortWalletsBasedOnConnectionState,
@@ -39,6 +40,7 @@ export function useWalletList(params: Params) {
39
40
  const { state, disconnect, getWalletInfo, connect } = useWallets();
40
41
  const { connectedWallets } = useWalletsStore();
41
42
  const blockchains = useAppStore().blockchains();
43
+ const componentWillUnmount = useRef(false);
42
44
 
43
45
  /** It can be what has been set by widget config or as a fallback we use all the supported wallets by our library */
44
46
  const listAvailableWalletTypes =
@@ -87,21 +89,34 @@ export function useWalletList(params: Params) {
87
89
  }
88
90
  };
89
91
 
90
- const disconnectConnectingWallets = () => {
92
+ const disconnectConnectingWallets = useCallback(() => {
91
93
  const connectingWallets =
92
94
  wallets?.filter((wallet) => wallet.state === WalletState.CONNECTING) ||
93
95
  [];
94
96
  for (const wallet of connectingWallets) {
95
97
  void disconnect(wallet.type);
96
98
  }
97
- };
99
+ }, [hashWalletsState(wallets)]);
98
100
 
101
+ /*
102
+ * The order of useEffects is crucial.
103
+ * 1- The first useEffect for componentWillUnmount sets its value to true
104
+ */
99
105
  useEffect(() => {
100
106
  return () => {
101
- disconnectConnectingWallets();
107
+ componentWillUnmount.current = true;
102
108
  };
103
109
  }, []);
104
110
 
111
+ // 2- The second useEffect checks if componentWillUnmount is true then it disconnects connecting wallets
112
+ useEffect(() => {
113
+ return () => {
114
+ if (componentWillUnmount.current) {
115
+ disconnectConnectingWallets();
116
+ }
117
+ };
118
+ }, [disconnectConnectingWallets]);
119
+
105
120
  /*
106
121
  * Atm, we only support default injected wallet for the EVM
107
122
  * so we show default wallet when there is no other evm wallet installed
@@ -141,5 +156,6 @@ export function useWalletList(params: Params) {
141
156
  ),
142
157
  error,
143
158
  handleClick,
159
+ disconnectConnectingWallets,
144
160
  };
145
161
  }
package/src/index.ts CHANGED
@@ -55,6 +55,7 @@ import {
55
55
  import { Networks, WalletTypes } from '@rango-dev/wallets-shared';
56
56
  import { PendingSwapNetworkStatus } from 'rango-types';
57
57
 
58
+ import { WIDGET_UI_ID as UI_ID } from './constants';
58
59
  import { WidgetWallets } from './containers/Wallets';
59
60
  import { Widget } from './containers/Widget';
60
61
  import { useWidget } from './containers/WidgetInfo';
@@ -105,6 +106,7 @@ export {
105
106
  StepEventType,
106
107
  StepExecutionEventStatus,
107
108
  StepExecutionBlockedEventStatus,
109
+ UI_ID,
108
110
  };
109
111
 
110
112
  // Internal type exports for Rango
@@ -62,7 +62,7 @@ export function Home() {
62
62
  setQuoteWarningsConfirmed,
63
63
  } = useQuoteStore();
64
64
 
65
- const fetchMetaStatus = useAppStore().fetchStatus;
65
+ const { config, fetchStatus: fetchMetaStatus } = useAppStore();
66
66
 
67
67
  const { connectedWallets, getBalanceFor } = useWalletsStore();
68
68
  const { isActiveTab } = useUiStore();
@@ -152,7 +152,7 @@ export function Home() {
152
152
  navigate(navigationRoutes.wallets);
153
153
  },
154
154
  hasBackButton: false,
155
- title: i18n.t('Swap'),
155
+ title: config.title || i18n.t('Swap'),
156
156
  suffix: (
157
157
  <HomeButtons
158
158
  onClickRefresh={
@@ -35,23 +35,29 @@ export function WalletsPage() {
35
35
  let modalTimerId: ReturnType<typeof setTimeout> | null = null;
36
36
  const isActiveTab = useUiStore.use.isActiveTab();
37
37
 
38
- const { list, handleClick, error } = useWalletList({
39
- config,
40
- onBeforeConnect: (type) => {
41
- modalTimerId = setTimeout(() => {
42
- setOpenModal(true);
43
- setSelectedWalletType(type);
44
- }, TIME_TO_IGNORE_MODAL);
45
- },
46
- onConnect: () => {
47
- if (modalTimerId) {
48
- clearTimeout(modalTimerId);
49
- }
50
- setTimeout(() => {
51
- setOpenModal(false);
52
- }, TIME_TO_CLOSE_MODAL);
53
- },
54
- });
38
+ const { list, handleClick, error, disconnectConnectingWallets } =
39
+ useWalletList({
40
+ config,
41
+ onBeforeConnect: (type) => {
42
+ modalTimerId = setTimeout(() => {
43
+ setOpenModal(true);
44
+ setSelectedWalletType(type);
45
+ }, TIME_TO_IGNORE_MODAL);
46
+ },
47
+ onConnect: () => {
48
+ if (modalTimerId) {
49
+ clearTimeout(modalTimerId);
50
+ }
51
+ setTimeout(() => {
52
+ setOpenModal(false);
53
+ }, TIME_TO_CLOSE_MODAL);
54
+ },
55
+ });
56
+
57
+ const handleCloseWalletModal = () => {
58
+ disconnectConnectingWallets();
59
+ setOpenModal(false);
60
+ };
55
61
 
56
62
  const selectedWallet = list.find(
57
63
  (wallet) => wallet.type === selectedWalletType
@@ -87,7 +93,7 @@ export function WalletsPage() {
87
93
  })}
88
94
  <WalletModal
89
95
  open={!!openModal}
90
- onClose={() => setOpenModal(false)}
96
+ onClose={handleCloseWalletModal}
91
97
  image={selectedWalletImage}
92
98
  state={selectedWalletState}
93
99
  error={error}
@@ -3,6 +3,7 @@ import type { StateCreatorWithInitialData } from '../app';
3
3
 
4
4
  export const DEFAULT_CONFIG: WidgetConfig = {
5
5
  apiKey: '',
6
+ title: undefined,
6
7
  multiWallets: true,
7
8
  enableNewLiquiditySources: true,
8
9
  customDestination: true,
@@ -184,6 +184,7 @@ export type Features = Partial<
184
184
  export type WidgetConfig = {
185
185
  apiKey: string;
186
186
  apiUrl?: string;
187
+ title?: string;
187
188
  walletConnectProjectId?: string;
188
189
  affiliate?: WidgetAffiliate;
189
190
  amount?: number;
@@ -1,4 +1,4 @@
1
- import { RANGO_SWAP_BOX_ID } from '../constants';
1
+ import { WIDGET_UI_ID } from '../constants';
2
2
 
3
3
  export function removeDuplicateFrom<T>(array: T[]): T[] {
4
4
  return Array.from(new Set(array));
@@ -33,4 +33,4 @@ export function containsText(text: string, searchText: string): boolean {
33
33
  }
34
34
 
35
35
  export const getContainer = () =>
36
- document.getElementById(RANGO_SWAP_BOX_ID) as HTMLElement;
36
+ document.getElementById(WIDGET_UI_ID.SWAP_BOX_ID) as HTMLElement;
@@ -551,3 +551,7 @@ export const isFetchingBalance = (
551
551
  !!connectedWallets.find(
552
552
  (wallet) => wallet.chain === blockchain && wallet.loading
553
553
  );
554
+
555
+ export function hashWalletsState(walletsInfo: ModalWalletInfo[]) {
556
+ return walletsInfo.map((w) => w.state).join('-');
557
+ }