@rango-dev/widget-embedded 0.27.3 → 0.27.4-next.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/CHANGELOG.md +9 -0
- package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +1 -1
- package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
- package/dist/components/HeaderButtons/HeaderButtons.styles.d.ts +1 -1
- package/dist/components/HeaderButtons/WalletButton.d.ts.map +1 -1
- package/dist/components/Quote/Quote.d.ts.map +1 -1
- package/dist/components/Quote/Quote.styles.d.ts.map +1 -1
- package/dist/hooks/useConfirmSwap/useConfirmSwap.d.ts.map +1 -1
- package/dist/hooks/useFetch.d.ts +1 -1
- package/dist/hooks/useFetch.d.ts.map +1 -1
- package/dist/hooks/useSyncUrlAndStore/useSyncUrlAndStore.d.ts.map +1 -1
- package/dist/hooks/useWalletList.d.ts +0 -2
- package/dist/hooks/useWalletList.d.ts.map +1 -1
- package/dist/hooks/useWalletProviders.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +3 -3
- package/dist/pages/Home.d.ts.map +1 -1
- package/dist/pages/WalletsPage.d.ts.map +1 -1
- package/dist/utils/providers.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +1 -1
- package/src/components/ConfirmWalletsModal/WalletList.tsx +0 -2
- package/src/components/HeaderButtons/WalletButton.tsx +1 -4
- package/src/components/Quote/Quote.styles.ts +19 -1
- package/src/components/Quote/Quote.tsx +62 -45
- package/src/containers/Wallets/Wallets.tsx +1 -1
- package/src/hooks/useConfirmSwap/useConfirmSwap.ts +3 -3
- package/src/hooks/useFetch.ts +13 -2
- package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.test.ts +1 -1
- package/src/hooks/useSyncUrlAndStore/useSyncUrlAndStore.ts +10 -1
- package/src/hooks/useWalletList.ts +2 -3
- package/src/hooks/useWalletProviders.ts +4 -2
- package/src/pages/Home.tsx +1 -2
- package/src/pages/WalletsPage.tsx +1 -2
- package/src/utils/meta.ts +1 -1
- package/src/utils/providers.ts +1 -0
package/dist/pages/Home.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Home.d.ts","sourceRoot":"","sources":["../../src/pages/Home.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA8B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Home.d.ts","sourceRoot":"","sources":["../../src/pages/Home.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA8B,MAAM,OAAO,CAAC;AA2BnD,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD,wBAAgB,IAAI,sBA0MnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletsPage.d.ts","sourceRoot":"","sources":["../../src/pages/WalletsPage.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAsBxC,eAAO,MAAM,mBAAmB,OAAQ,CAAC;AACzC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,wBAAgB,WAAW,
|
|
1
|
+
{"version":3,"file":"WalletsPage.d.ts","sourceRoot":"","sources":["../../src/pages/WalletsPage.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAsBxC,eAAO,MAAM,mBAAmB,OAAQ,CAAC;AACzC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,wBAAgB,WAAW,sBAyE1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/utils/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAIlE,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB,CAAC,EAAE,YAAY,CAAC,wBAAwB,CAAC,CAAC;CACjE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC,EAClC,OAAO,CAAC,EAAE,gBAAgB,GACzB,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/utils/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAIlE,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB,CAAC,EAAE,YAAY,CAAC,wBAAwB,CAAC,CAAC;CACjE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC,EAClC,OAAO,CAAC,EAAE,gBAAgB,GACzB,iBAAiB,EAAE,CAqCrB;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,EAC/B,OAAO,CAAC,EAAE,gBAAgB,GACzB,MAAM,EAAE,CAMV"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rango-dev/widget-embedded",
|
|
3
|
-
"version": "0.27.
|
|
3
|
+
"version": "0.27.4-next.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"source": "./src/index.ts",
|
|
@@ -24,14 +24,14 @@
|
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@lingui/core": "4.2.1",
|
|
26
26
|
"@lingui/react": "4.2.1",
|
|
27
|
-
"@rango-dev/logging-core": "^0.2.
|
|
28
|
-
"@rango-dev/provider-all": "^0.32.
|
|
27
|
+
"@rango-dev/logging-core": "^0.2.1-next.1",
|
|
28
|
+
"@rango-dev/provider-all": "^0.32.2-next.2",
|
|
29
29
|
"@rango-dev/queue-manager-core": "^0.26.0",
|
|
30
|
-
"@rango-dev/queue-manager-rango-preset": "^0.32.0",
|
|
30
|
+
"@rango-dev/queue-manager-rango-preset": "^0.32.1-next.0",
|
|
31
31
|
"@rango-dev/queue-manager-react": "^0.26.0",
|
|
32
|
-
"@rango-dev/ui": "^0.33.
|
|
33
|
-
"@rango-dev/wallets-react": "^0.18.0",
|
|
34
|
-
"@rango-dev/wallets-shared": "^0.32.0",
|
|
32
|
+
"@rango-dev/ui": "^0.33.1-next.4",
|
|
33
|
+
"@rango-dev/wallets-react": "^0.18.1-next.0",
|
|
34
|
+
"@rango-dev/wallets-shared": "^0.32.1-next.0",
|
|
35
35
|
"bignumber.js": "^9.1.1",
|
|
36
36
|
"copy-to-clipboard": "^3.3.3",
|
|
37
37
|
"dayjs": "^1.11.7",
|
|
@@ -52,4 +52,4 @@
|
|
|
52
52
|
"publishConfig": {
|
|
53
53
|
"access": "public"
|
|
54
54
|
}
|
|
55
|
-
}
|
|
55
|
+
}
|
|
@@ -437,7 +437,6 @@ export function ConfirmWalletsModal(props: PropTypes) {
|
|
|
437
437
|
}>
|
|
438
438
|
<Divider size={4} />
|
|
439
439
|
<StyledTextField
|
|
440
|
-
autoFocus
|
|
441
440
|
placeholder={i18n.t('Your destination address')}
|
|
442
441
|
value={customDestination || ''}
|
|
443
442
|
onChange={(e) => {
|
|
@@ -449,6 +448,7 @@ export function ConfirmWalletsModal(props: PropTypes) {
|
|
|
449
448
|
setCustomDestination(value.length ? value : null);
|
|
450
449
|
}
|
|
451
450
|
}}
|
|
451
|
+
{...(!customDestination && { autoFocus: true })}
|
|
452
452
|
/>
|
|
453
453
|
</CustomCollapsible>
|
|
454
454
|
|
|
@@ -44,7 +44,6 @@ import {
|
|
|
44
44
|
const ACCOUNT_ADDRESS_MAX_CHARACTERS = 7;
|
|
45
45
|
export function WalletList(props: PropTypes) {
|
|
46
46
|
const { chain, isSelected, selectWallet, limit, onShowMore } = props;
|
|
47
|
-
const { config } = useAppStore();
|
|
48
47
|
const isActiveTab = useUiStore.use.isActiveTab();
|
|
49
48
|
|
|
50
49
|
const connectedWallets = useWalletsStore.use.connectedWallets();
|
|
@@ -61,7 +60,6 @@ export function WalletList(props: PropTypes) {
|
|
|
61
60
|
let modalTimerId: ReturnType<typeof setTimeout> | null = null;
|
|
62
61
|
const { list, error, handleClick, disconnectConnectingWallets } =
|
|
63
62
|
useWalletList({
|
|
64
|
-
config,
|
|
65
63
|
chain,
|
|
66
64
|
onBeforeConnect: (type) => {
|
|
67
65
|
modalTimerId = setTimeout(() => {
|
|
@@ -5,7 +5,6 @@ import { Image, Tooltip, WalletIcon } from '@rango-dev/ui';
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
|
|
7
7
|
import { useWalletList } from '../../hooks/useWalletList';
|
|
8
|
-
import { useAppStore } from '../../store/AppStore';
|
|
9
8
|
|
|
10
9
|
import {
|
|
11
10
|
ConnectedIcon,
|
|
@@ -15,9 +14,7 @@ import {
|
|
|
15
14
|
} from './HeaderButtons.styles';
|
|
16
15
|
|
|
17
16
|
function WalletButton(props: PropTypes) {
|
|
18
|
-
const {
|
|
19
|
-
|
|
20
|
-
const { list } = useWalletList({ config });
|
|
17
|
+
const { list } = useWalletList({});
|
|
21
18
|
const connectedWallets = list.filter(
|
|
22
19
|
(wallet) => wallet.state === 'connected'
|
|
23
20
|
);
|
|
@@ -63,7 +63,25 @@ export const stepsDetailsStyles = css({
|
|
|
63
63
|
});
|
|
64
64
|
export const AllRoutesButton = styled(Button, {
|
|
65
65
|
backgroundColor: 'transparent',
|
|
66
|
-
border: '1px solid $
|
|
66
|
+
border: '1px solid $secondary600',
|
|
67
|
+
[`.${darkTheme} &`]: {
|
|
68
|
+
border: '1px solid $secondary',
|
|
69
|
+
},
|
|
70
|
+
transition: 'background-color 0.3s ease',
|
|
71
|
+
'&:hover': {
|
|
72
|
+
backgroundColor: '$secondary600',
|
|
73
|
+
[`.${darkTheme} &`]: {
|
|
74
|
+
backgroundColor: '$secondary',
|
|
75
|
+
},
|
|
76
|
+
'.allRoutesLabel': {
|
|
77
|
+
$$color: '$colors$background',
|
|
78
|
+
[`.${darkTheme} &`]: {
|
|
79
|
+
$$color: '$colors$foreground',
|
|
80
|
+
},
|
|
81
|
+
color: '$$color',
|
|
82
|
+
transition: 'color 0.3s ease',
|
|
83
|
+
},
|
|
84
|
+
},
|
|
67
85
|
});
|
|
68
86
|
export const SummaryContainer = styled('div', {
|
|
69
87
|
borderRadius: '$xm',
|
|
@@ -90,6 +90,8 @@ export function Quote(props: QuoteProps) {
|
|
|
90
90
|
const blockchains = useAppStore().blockchains();
|
|
91
91
|
const tokens = useAppStore().tokens();
|
|
92
92
|
const swappers = useAppStore().swappers();
|
|
93
|
+
const { customSlippage, slippage } = useAppStore();
|
|
94
|
+
const userSlippage = customSlippage || slippage;
|
|
93
95
|
const [expanded, setExpanded] = useState(props.expanded);
|
|
94
96
|
const quoteRef = useRef<HTMLButtonElement | null>(null);
|
|
95
97
|
const roundedInput = numberToString(
|
|
@@ -149,7 +151,7 @@ export function Quote(props: QuoteProps) {
|
|
|
149
151
|
: i18n.t('Slippage Warning');
|
|
150
152
|
|
|
151
153
|
if (hasBridgeLimitError) {
|
|
152
|
-
alertTitle =
|
|
154
|
+
alertTitle = i18n.t('Bridge Limit Error');
|
|
153
155
|
}
|
|
154
156
|
|
|
155
157
|
return {
|
|
@@ -229,50 +231,43 @@ export function Quote(props: QuoteProps) {
|
|
|
229
231
|
type={stepHasError ? 'error' : 'warning'}
|
|
230
232
|
title={alertTitle}
|
|
231
233
|
footer={
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
},
|
|
264
|
-
})}
|
|
265
|
-
</Typography>
|
|
266
|
-
</>
|
|
267
|
-
)}
|
|
268
|
-
{(hasSlippageError || hasSlippageWarning) &&
|
|
269
|
-
!hasBridgeLimitError && (
|
|
234
|
+
<FooterAlert>
|
|
235
|
+
{hasBridgeLimitError && (
|
|
236
|
+
<div>
|
|
237
|
+
<Typography
|
|
238
|
+
size="xsmall"
|
|
239
|
+
variant="body"
|
|
240
|
+
color="neutral900">
|
|
241
|
+
{error.fromAmountRangeError}
|
|
242
|
+
</Typography>
|
|
243
|
+
<Divider direction="vertical" size={2} />
|
|
244
|
+
<Typography
|
|
245
|
+
size="xsmall"
|
|
246
|
+
variant="body"
|
|
247
|
+
color="neutral900">
|
|
248
|
+
{i18n.t({
|
|
249
|
+
id: 'Yours: {amount} {symbol}',
|
|
250
|
+
values: {
|
|
251
|
+
amount: numberToString(
|
|
252
|
+
swap.fromAmount,
|
|
253
|
+
TOKEN_AMOUNT_MIN_DECIMALS,
|
|
254
|
+
TOKEN_AMOUNT_MAX_DECIMALS
|
|
255
|
+
),
|
|
256
|
+
symbol: swap?.from.symbol,
|
|
257
|
+
},
|
|
258
|
+
})}
|
|
259
|
+
</Typography>
|
|
260
|
+
</div>
|
|
261
|
+
)}
|
|
262
|
+
{(hasSlippageError || hasSlippageWarning) &&
|
|
263
|
+
!hasBridgeLimitError && (
|
|
264
|
+
<div>
|
|
270
265
|
<Typography
|
|
271
266
|
size="xsmall"
|
|
272
267
|
variant="body"
|
|
273
268
|
color="neutral900">
|
|
274
269
|
{i18n.t({
|
|
275
|
-
id: 'Minimum required slippage
|
|
270
|
+
id: 'Minimum required slippage: {minRequiredSlippage}',
|
|
276
271
|
values: {
|
|
277
272
|
...(error?.type ===
|
|
278
273
|
QuoteErrorType.INSUFFICIENT_SLIPPAGE && {
|
|
@@ -287,9 +282,21 @@ export function Quote(props: QuoteProps) {
|
|
|
287
282
|
},
|
|
288
283
|
})}
|
|
289
284
|
</Typography>
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
285
|
+
<Divider direction="vertical" size={2} />
|
|
286
|
+
<Typography
|
|
287
|
+
size="xsmall"
|
|
288
|
+
variant="body"
|
|
289
|
+
color="neutral900">
|
|
290
|
+
{i18n.t({
|
|
291
|
+
id: 'Yours: {userSlippage}',
|
|
292
|
+
values: {
|
|
293
|
+
userSlippage,
|
|
294
|
+
},
|
|
295
|
+
})}
|
|
296
|
+
</Typography>
|
|
297
|
+
</div>
|
|
298
|
+
)}
|
|
299
|
+
</FooterAlert>
|
|
293
300
|
}
|
|
294
301
|
/>
|
|
295
302
|
</FooterStepAlarm>
|
|
@@ -381,8 +388,18 @@ export function Quote(props: QuoteProps) {
|
|
|
381
388
|
}}
|
|
382
389
|
size="xxsmall"
|
|
383
390
|
type="secondary"
|
|
384
|
-
variant="default"
|
|
385
|
-
|
|
391
|
+
variant="default"
|
|
392
|
+
css={{
|
|
393
|
+
paddingLeft: '$10',
|
|
394
|
+
paddingRight: '$10',
|
|
395
|
+
paddingTop: '$5',
|
|
396
|
+
paddingBottom: '$5',
|
|
397
|
+
}}>
|
|
398
|
+
<Typography
|
|
399
|
+
color="secondary"
|
|
400
|
+
variant="body"
|
|
401
|
+
size="xsmall"
|
|
402
|
+
className="allRoutesLabel">
|
|
386
403
|
{i18n.t('See All Routes')}
|
|
387
404
|
</Typography>
|
|
388
405
|
</AllRoutesButton>
|
|
@@ -39,7 +39,7 @@ function Main(props: PropsWithChildren<PropTypes>) {
|
|
|
39
39
|
const walletOptions: ProvidersOptions = {
|
|
40
40
|
walletConnectProjectId: props.config?.walletConnectProjectId,
|
|
41
41
|
};
|
|
42
|
-
const { providers } = useWalletProviders(
|
|
42
|
+
const { providers } = useWalletProviders(config.wallets, walletOptions);
|
|
43
43
|
const { connectWallet, disconnectWallet } = useWalletsStore();
|
|
44
44
|
const onConnectWalletHandler = useRef<OnWalletConnectionChange>();
|
|
45
45
|
const onDisconnectWalletHandler = useRef<OnWalletConnectionChange>();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ConfirmSwap
|
|
1
|
+
import type { ConfirmSwap } from './useConfirmSwap.types';
|
|
2
2
|
import type { PendingSwapSettings, SelectedQuote } from '../../types';
|
|
3
3
|
import type { ConfirmRouteRequest } from 'rango-sdk';
|
|
4
4
|
|
|
@@ -39,7 +39,7 @@ export function useConfirmSwap(): ConfirmSwap {
|
|
|
39
39
|
|
|
40
40
|
useEffect(() => cancelFetch, []);
|
|
41
41
|
|
|
42
|
-
const fetch: ConfirmSwap['fetch'] = async (params
|
|
42
|
+
const fetch: ConfirmSwap['fetch'] = async (params) => {
|
|
43
43
|
const selectedWallets = params.selectedWallets;
|
|
44
44
|
const customDestination =
|
|
45
45
|
params?.customDestination ?? customDestinationFromStore;
|
|
@@ -67,7 +67,7 @@ export function useConfirmSwap(): ConfirmSwap {
|
|
|
67
67
|
};
|
|
68
68
|
|
|
69
69
|
try {
|
|
70
|
-
return await fetchQuote(requestBody).then((response) => {
|
|
70
|
+
return await fetchQuote(requestBody, true).then((response) => {
|
|
71
71
|
const { result } = response;
|
|
72
72
|
|
|
73
73
|
throwErrorIfResponseIsNotValid({
|
package/src/hooks/useFetch.ts
CHANGED
|
@@ -9,11 +9,13 @@ type UseFetchOptions<TRequest, TResponse> = {
|
|
|
9
9
|
) => Promise<TResponse>;
|
|
10
10
|
};
|
|
11
11
|
export type UseFetchResult<TRequest, TResponse> = {
|
|
12
|
-
fetch: (requestBody: TRequest) => Promise<TResponse>;
|
|
12
|
+
fetch: (requestBody: TRequest, retryOnFail?: boolean) => Promise<TResponse>;
|
|
13
13
|
cancelFetch: () => void;
|
|
14
14
|
loading: boolean;
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
+
const RETRY_DELAY = 2_000;
|
|
18
|
+
|
|
17
19
|
export function useFetch<TRequest, TResponse>({
|
|
18
20
|
request,
|
|
19
21
|
}: UseFetchOptions<TRequest, TResponse>): UseFetchResult<TRequest, TResponse> {
|
|
@@ -22,8 +24,14 @@ export function useFetch<TRequest, TResponse>({
|
|
|
22
24
|
|
|
23
25
|
const cancelFetch = () => abortController.current?.abort();
|
|
24
26
|
|
|
27
|
+
const retryFetch = async (requestBody: TRequest) => {
|
|
28
|
+
await new Promise((resolve) => setTimeout(resolve, RETRY_DELAY));
|
|
29
|
+
return await fetch(requestBody, false);
|
|
30
|
+
};
|
|
31
|
+
|
|
25
32
|
const fetch: UseFetchResult<TRequest, TResponse>['fetch'] = async (
|
|
26
|
-
requestBody
|
|
33
|
+
requestBody,
|
|
34
|
+
retryOnFail = false
|
|
27
35
|
) => {
|
|
28
36
|
cancelFetch();
|
|
29
37
|
abortController.current = new AbortController();
|
|
@@ -38,6 +46,9 @@ export function useFetch<TRequest, TResponse>({
|
|
|
38
46
|
return res;
|
|
39
47
|
// eslint-disable-next-line no-useless-catch
|
|
40
48
|
} catch (error) {
|
|
49
|
+
if (retryOnFail) {
|
|
50
|
+
return await retryFetch(requestBody);
|
|
51
|
+
}
|
|
41
52
|
throw error;
|
|
42
53
|
} finally {
|
|
43
54
|
setLoading(false);
|
|
@@ -271,7 +271,7 @@ describe('usePrepareBlockchainList', () => {
|
|
|
271
271
|
]);
|
|
272
272
|
});
|
|
273
273
|
|
|
274
|
-
it
|
|
274
|
+
it('Last item of the main list should be moved to front if it selected again.', () => {
|
|
275
275
|
const listLimit = 10;
|
|
276
276
|
const preferredBlockchains = ['AVAX_CCHAIN', 'BTC'];
|
|
277
277
|
const expected = [
|
|
@@ -38,6 +38,13 @@ export function useSyncUrlAndStore() {
|
|
|
38
38
|
const liquiditySourcesParamsRef = useRef<string>();
|
|
39
39
|
|
|
40
40
|
const getUrlSearchParams = () => {
|
|
41
|
+
const utmQueryParams: Record<string, string> = {};
|
|
42
|
+
|
|
43
|
+
for (const [key, value] of searchParams.entries()) {
|
|
44
|
+
if (key.startsWith('utm_')) {
|
|
45
|
+
utmQueryParams[key] = value;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
41
48
|
const fromAmount = searchParams.get(SearchParams.FROM_AMOUNT);
|
|
42
49
|
const fromBlockchain = searchParams.get(SearchParams.FROM_BLOCKCHAIN);
|
|
43
50
|
const fromToken = searchParams.get(SearchParams.FROM_TOKEN);
|
|
@@ -56,6 +63,7 @@ export function useSyncUrlAndStore() {
|
|
|
56
63
|
autoConnect,
|
|
57
64
|
clientUrl,
|
|
58
65
|
liquiditySources,
|
|
66
|
+
utmQueryParams,
|
|
59
67
|
};
|
|
60
68
|
};
|
|
61
69
|
|
|
@@ -71,7 +79,7 @@ export function useSyncUrlAndStore() {
|
|
|
71
79
|
};
|
|
72
80
|
|
|
73
81
|
useEffect(() => {
|
|
74
|
-
const { autoConnect, clientUrl } = getUrlSearchParams();
|
|
82
|
+
const { autoConnect, clientUrl, utmQueryParams } = getUrlSearchParams();
|
|
75
83
|
if (isInRouterContext && fetchMetaStatus === 'success') {
|
|
76
84
|
updateUrlSearchParams({
|
|
77
85
|
[SearchParams.FROM_BLOCKCHAIN]: fromBlockchain?.name,
|
|
@@ -84,6 +92,7 @@ export function useSyncUrlAndStore() {
|
|
|
84
92
|
[SearchParams.LIQUIDITY_SOURCES]: campaignMode
|
|
85
93
|
? liquiditySourcesParamsRef.current
|
|
86
94
|
: undefined,
|
|
95
|
+
...utmQueryParams,
|
|
87
96
|
});
|
|
88
97
|
}
|
|
89
98
|
}, [
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { WidgetConfig } from '../types';
|
|
2
1
|
import type { WalletInfo } from '@rango-dev/ui';
|
|
3
2
|
import type { BlockchainMeta } from 'rango-sdk';
|
|
4
3
|
|
|
@@ -25,7 +24,6 @@ import {
|
|
|
25
24
|
const ALL_SUPPORTED_WALLETS = Object.values(WalletTypes);
|
|
26
25
|
|
|
27
26
|
interface Params {
|
|
28
|
-
config?: WidgetConfig;
|
|
29
27
|
chain?: string;
|
|
30
28
|
onBeforeConnect?: (walletType: string) => void;
|
|
31
29
|
onConnect?: (walletType: string) => void;
|
|
@@ -37,7 +35,8 @@ interface Params {
|
|
|
37
35
|
* you can use this list whenever you need to show the list of wallets and needed callbacks
|
|
38
36
|
*/
|
|
39
37
|
export function useWalletList(params: Params) {
|
|
40
|
-
const {
|
|
38
|
+
const { chain, onBeforeConnect, onConnect } = params;
|
|
39
|
+
const { config } = useAppStore();
|
|
41
40
|
const { state, disconnect, getWalletInfo, connect } = useWallets();
|
|
42
41
|
const { connectedWallets } = useWalletsStore();
|
|
43
42
|
const blockchains = useAppStore().blockchains();
|
|
@@ -13,8 +13,10 @@ export function useWalletProviders(
|
|
|
13
13
|
) {
|
|
14
14
|
const clearConnectedWallet = useWalletsStore.use.clearConnectedWallet();
|
|
15
15
|
let generateProviders: ProviderInterface[] = matchAndGenerateProviders(
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
providers,
|
|
17
|
+
{
|
|
18
|
+
walletConnectProjectId: options?.walletConnectProjectId,
|
|
19
|
+
}
|
|
18
20
|
);
|
|
19
21
|
|
|
20
22
|
useEffect(() => {
|
package/src/pages/Home.tsx
CHANGED
|
@@ -23,8 +23,7 @@ import { isVariantExpandable } from '../utils/configs';
|
|
|
23
23
|
import { getSwapButtonState, isTokensIdentical } from '../utils/swap';
|
|
24
24
|
|
|
25
25
|
const MainContainer = styled('div', {
|
|
26
|
-
display: '
|
|
27
|
-
gridTemplateColumns: 'auto auto',
|
|
26
|
+
display: 'flex',
|
|
28
27
|
alignItems: 'flex-start',
|
|
29
28
|
maxHeight: 700,
|
|
30
29
|
'& .footer__alert': {
|
|
@@ -28,7 +28,7 @@ export const TIME_TO_CLOSE_MODAL = 3_000;
|
|
|
28
28
|
export const TIME_TO_IGNORE_MODAL = 300;
|
|
29
29
|
|
|
30
30
|
export function WalletsPage() {
|
|
31
|
-
const {
|
|
31
|
+
const { fetchStatus: fetchMetaStatus } = useAppStore();
|
|
32
32
|
const [openModal, setOpenModal] = useState(false);
|
|
33
33
|
const [selectedWalletType, setSelectedWalletType] = useState<WalletType>('');
|
|
34
34
|
let modalTimerId: ReturnType<typeof setTimeout> | null = null;
|
|
@@ -36,7 +36,6 @@ export function WalletsPage() {
|
|
|
36
36
|
|
|
37
37
|
const { list, handleClick, error, disconnectConnectingWallets } =
|
|
38
38
|
useWalletList({
|
|
39
|
-
config,
|
|
40
39
|
onBeforeConnect: (type) => {
|
|
41
40
|
modalTimerId = setTimeout(() => {
|
|
42
41
|
setOpenModal(true);
|
package/src/utils/meta.ts
CHANGED
|
@@ -21,7 +21,7 @@ export function getSwapperDisplayName(
|
|
|
21
21
|
swapperId: string,
|
|
22
22
|
swappers: SwapperMeta[]
|
|
23
23
|
) {
|
|
24
|
-
return swappers.find((swapper) => swapper.id === swapperId)?.
|
|
24
|
+
return swappers.find((swapper) => swapper.id === swapperId)?.title;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
export function findToken(t: Asset, tokens: Token[]) {
|