@rango-dev/ui 0.1.10-next.80 → 0.1.10-next.82
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/components/Settings/Settings.d.ts +2 -0
- package/dist/components/TokenList/TokenItem.d.ts +11 -0
- package/dist/components/VirtualizedList/VirtualizedList.d.ts +0 -1
- package/dist/ui.cjs.development.js +88 -86
- package/dist/ui.cjs.development.js.map +1 -1
- package/dist/ui.cjs.production.min.js +1 -1
- package/dist/ui.cjs.production.min.js.map +1 -1
- package/dist/ui.esm.js +89 -87
- package/dist/ui.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Settings/Settings.tsx +14 -0
- package/src/components/TokenList/TokenItem.tsx +70 -0
- package/src/components/TokenList/TokenList.tsx +14 -108
- package/src/components/TokenSelector/TokenSelector.tsx +10 -1
- package/src/components/VirtualizedList/VirtualizedList.tsx +19 -35
package/dist/ui.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React__default, { createElement, forwardRef, Fragment, useState, useEffect
|
|
1
|
+
import React__default, { createElement, forwardRef, Fragment, useState, useEffect } from 'react';
|
|
2
2
|
import { Indicator, Root } from '@radix-ui/react-checkbox';
|
|
3
3
|
import { createPortal } from 'react-dom';
|
|
4
4
|
import { detectInstallLink } from '@rango-dev/wallets-shared';
|
|
@@ -3227,6 +3227,11 @@ var LiquiditySourceContainer = /*#__PURE__*/styled(BaseContainer, {
|
|
|
3227
3227
|
marginTop: '$32',
|
|
3228
3228
|
cursor: 'pointer'
|
|
3229
3229
|
});
|
|
3230
|
+
var InfiniteContainer = /*#__PURE__*/styled(BaseContainer, {
|
|
3231
|
+
display: 'flex',
|
|
3232
|
+
justifyContent: 'space-between',
|
|
3233
|
+
marginTop: '$32'
|
|
3234
|
+
});
|
|
3230
3235
|
var StyledAngleRight = /*#__PURE__*/styled(AngleRightIcon, {
|
|
3231
3236
|
marginLeft: '$8'
|
|
3232
3237
|
});
|
|
@@ -3250,7 +3255,9 @@ function Settings(props) {
|
|
|
3250
3255
|
maxSlippage = props.maxSlippage,
|
|
3251
3256
|
minSlippage = props.minSlippage,
|
|
3252
3257
|
selectedTheme = props.selectedTheme,
|
|
3253
|
-
onThemeChange = props.onThemeChange
|
|
3258
|
+
onThemeChange = props.onThemeChange,
|
|
3259
|
+
toggleInfiniteApprove = props.toggleInfiniteApprove,
|
|
3260
|
+
infiniteApprove = props.infiniteApprove;
|
|
3254
3261
|
var _useState = useState(props.selectedSlippage),
|
|
3255
3262
|
selectedSlippage = _useState[0],
|
|
3256
3263
|
setSelectedSlippage = _useState[1];
|
|
@@ -3311,6 +3318,11 @@ function Settings(props) {
|
|
|
3311
3318
|
style: {
|
|
3312
3319
|
marginTop: '$24'
|
|
3313
3320
|
}
|
|
3321
|
+
})), React__default.createElement(InfiniteContainer, null, React__default.createElement(Typography, {
|
|
3322
|
+
variant: "body1"
|
|
3323
|
+
}, "Infinite Approval"), React__default.createElement(Switch, {
|
|
3324
|
+
checked: infiniteApprove,
|
|
3325
|
+
onChange: toggleInfiniteApprove
|
|
3314
3326
|
})), React__default.createElement(LiquiditySourceContainer, {
|
|
3315
3327
|
onClick: onLiquiditySourcesClick
|
|
3316
3328
|
}, React__default.createElement(Typography, {
|
|
@@ -3465,30 +3477,27 @@ function SwapDetail(_ref) {
|
|
|
3465
3477
|
function VirtualizedList(props) {
|
|
3466
3478
|
var itemCount = props.itemCount,
|
|
3467
3479
|
hasNextPage = props.hasNextPage,
|
|
3468
|
-
isNextPageLoading = props.isNextPageLoading,
|
|
3469
3480
|
loadNextPage = props.loadNextPage,
|
|
3470
3481
|
Item = props.Item,
|
|
3471
3482
|
innerElementType = props.innerElementType,
|
|
3472
3483
|
size = props.size;
|
|
3473
|
-
var listRef = useRef(null);
|
|
3474
3484
|
var isItemLoaded = function isItemLoaded(index) {
|
|
3475
3485
|
return !hasNextPage || index < itemCount;
|
|
3476
3486
|
};
|
|
3477
|
-
return React__default.createElement(
|
|
3478
|
-
|
|
3479
|
-
|
|
3480
|
-
|
|
3481
|
-
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
|
|
3485
|
-
|
|
3486
|
-
|
|
3487
|
-
|
|
3488
|
-
height = _ref2.height;
|
|
3487
|
+
return React__default.createElement(AutoSizer, null, function (_ref) {
|
|
3488
|
+
var width = _ref.width,
|
|
3489
|
+
height = _ref.height;
|
|
3490
|
+
return React__default.createElement(InfiniteLoader, {
|
|
3491
|
+
isItemLoaded: isItemLoaded,
|
|
3492
|
+
itemCount: hasNextPage ? itemCount + 1 : itemCount,
|
|
3493
|
+
loadMoreItems: loadNextPage,
|
|
3494
|
+
threshold: 1
|
|
3495
|
+
}, function (_ref2) {
|
|
3496
|
+
var onItemsRendered = _ref2.onItemsRendered,
|
|
3497
|
+
ref = _ref2.ref;
|
|
3489
3498
|
return React__default.createElement(VariableSizeList, {
|
|
3490
3499
|
innerElementType: innerElementType,
|
|
3491
|
-
ref:
|
|
3500
|
+
ref: ref,
|
|
3492
3501
|
itemSize: function itemSize() {
|
|
3493
3502
|
return size;
|
|
3494
3503
|
},
|
|
@@ -3508,8 +3517,6 @@ function VirtualizedList(props) {
|
|
|
3508
3517
|
});
|
|
3509
3518
|
}
|
|
3510
3519
|
|
|
3511
|
-
var _excluded$D = ["style"];
|
|
3512
|
-
var PAGE_SIZE = 20;
|
|
3513
3520
|
var TokenImage = /*#__PURE__*/styled('img', {
|
|
3514
3521
|
width: '$32',
|
|
3515
3522
|
maxHeight: '$32',
|
|
@@ -3524,11 +3531,44 @@ var TokenAmountContainer = /*#__PURE__*/styled('div', {
|
|
|
3524
3531
|
flexDirection: 'column',
|
|
3525
3532
|
alignItems: 'flex-end'
|
|
3526
3533
|
});
|
|
3527
|
-
|
|
3528
|
-
|
|
3529
|
-
|
|
3530
|
-
|
|
3531
|
-
|
|
3534
|
+
function TokenItem(props) {
|
|
3535
|
+
var _token$balance;
|
|
3536
|
+
var token = props.token,
|
|
3537
|
+
style = props.style,
|
|
3538
|
+
onClick = props.onClick,
|
|
3539
|
+
selected = props.selected;
|
|
3540
|
+
return React__default.createElement("div", {
|
|
3541
|
+
style: _extends({
|
|
3542
|
+
display: 'flex',
|
|
3543
|
+
alignItems: 'center',
|
|
3544
|
+
width: '100%'
|
|
3545
|
+
}, style, {
|
|
3546
|
+
height: '48px',
|
|
3547
|
+
top: parseFloat(style == null ? void 0 : style.top) + 0 + "px"
|
|
3548
|
+
})
|
|
3549
|
+
}, React__default.createElement(Button, {
|
|
3550
|
+
variant: "outlined",
|
|
3551
|
+
size: "large",
|
|
3552
|
+
align: "start",
|
|
3553
|
+
onClick: onClick.bind(null, token),
|
|
3554
|
+
type: selected ? 'primary' : undefined,
|
|
3555
|
+
prefix: React__default.createElement(TokenImage, {
|
|
3556
|
+
src: token.image
|
|
3557
|
+
}),
|
|
3558
|
+
suffix: ((_token$balance = token.balance) == null ? void 0 : _token$balance.amount) && React__default.createElement(TokenAmountContainer, null, React__default.createElement(Typography, {
|
|
3559
|
+
variant: "body2"
|
|
3560
|
+
}, token.balance.amount), React__default.createElement(Typography, {
|
|
3561
|
+
variant: "caption"
|
|
3562
|
+
}, token.balance.usdValue + "$"))
|
|
3563
|
+
}, React__default.createElement(TokenNameContainer, null, React__default.createElement(Typography, {
|
|
3564
|
+
variant: "body1"
|
|
3565
|
+
}, token.symbol), React__default.createElement(Typography, {
|
|
3566
|
+
variant: "body2"
|
|
3567
|
+
}, token.name))));
|
|
3568
|
+
}
|
|
3569
|
+
|
|
3570
|
+
var _excluded$D = ["style"];
|
|
3571
|
+
var PAGE_SIZE = 20;
|
|
3532
3572
|
function TokenList(props) {
|
|
3533
3573
|
var list = props.list,
|
|
3534
3574
|
searchedText = props.searchedText,
|
|
@@ -3542,7 +3582,7 @@ function TokenList(props) {
|
|
|
3542
3582
|
setSelected(token);
|
|
3543
3583
|
onChange(token);
|
|
3544
3584
|
};
|
|
3545
|
-
var
|
|
3585
|
+
var isSelected = function isSelected(token) {
|
|
3546
3586
|
if (multiSelect && selectedList) {
|
|
3547
3587
|
return selectedList === 'all' || selectedList.map(function (item) {
|
|
3548
3588
|
return item.symbol + item.address;
|
|
@@ -3550,71 +3590,28 @@ function TokenList(props) {
|
|
|
3550
3590
|
}
|
|
3551
3591
|
return (selected == null ? void 0 : selected.symbol) === token.symbol && (selected == null ? void 0 : selected.address) === token.address;
|
|
3552
3592
|
};
|
|
3553
|
-
var Token = function Token(_ref) {
|
|
3554
|
-
var _currentToken$balance;
|
|
3555
|
-
var filteredTokens = _ref.filteredTokens,
|
|
3556
|
-
index = _ref.index,
|
|
3557
|
-
style = _ref.style;
|
|
3558
|
-
var currentToken = filteredTokens[index];
|
|
3559
|
-
return React__default.createElement("div", {
|
|
3560
|
-
style: _extends({
|
|
3561
|
-
display: 'flex',
|
|
3562
|
-
alignItems: 'center',
|
|
3563
|
-
width: '100%'
|
|
3564
|
-
}, style, {
|
|
3565
|
-
height: '48px',
|
|
3566
|
-
top: parseFloat(style == null ? void 0 : style.top) + 0 + "px"
|
|
3567
|
-
})
|
|
3568
|
-
}, React__default.createElement(Button, {
|
|
3569
|
-
variant: "outlined",
|
|
3570
|
-
size: "large",
|
|
3571
|
-
align: "start",
|
|
3572
|
-
onClick: changeSelected.bind(null, currentToken),
|
|
3573
|
-
type: isSelect(currentToken) ? 'primary' : undefined,
|
|
3574
|
-
prefix: React__default.createElement(TokenImage, {
|
|
3575
|
-
src: currentToken.image
|
|
3576
|
-
}),
|
|
3577
|
-
suffix: ((_currentToken$balance = currentToken.balance) == null ? void 0 : _currentToken$balance.amount) && React__default.createElement(TokenAmountContainer, null, React__default.createElement(Typography, {
|
|
3578
|
-
variant: "body2"
|
|
3579
|
-
}, currentToken.balance.amount), React__default.createElement(Typography, {
|
|
3580
|
-
variant: "caption"
|
|
3581
|
-
}, currentToken.balance.usdValue + "$"))
|
|
3582
|
-
}, React__default.createElement(TokenNameContainer, null, React__default.createElement(Typography, {
|
|
3583
|
-
variant: "body1"
|
|
3584
|
-
}, currentToken.symbol), React__default.createElement(Typography, {
|
|
3585
|
-
variant: "body2"
|
|
3586
|
-
}, currentToken.name))));
|
|
3587
|
-
};
|
|
3588
3593
|
var _useState2 = useState(true),
|
|
3589
3594
|
hasNextPage = _useState2[0],
|
|
3590
3595
|
setHasNextPage = _useState2[1];
|
|
3591
|
-
var _useState3 = useState(
|
|
3592
|
-
|
|
3593
|
-
|
|
3594
|
-
var _useState4 = useState(list),
|
|
3595
|
-
filteredTokens = _useState4[0],
|
|
3596
|
-
setFilteredTokens = _useState4[1];
|
|
3596
|
+
var _useState3 = useState(list),
|
|
3597
|
+
tokens = _useState3[0],
|
|
3598
|
+
setTokens = _useState3[1];
|
|
3597
3599
|
var loadNextPage = function loadNextPage() {
|
|
3598
|
-
|
|
3599
|
-
setTimeout(function () {
|
|
3600
|
-
setIsNextPageLoading(false);
|
|
3601
|
-
setFilteredTokens(filterTokens(list, searchedText, filteredTokens.length + PAGE_SIZE));
|
|
3602
|
-
}, 0);
|
|
3600
|
+
setTokens(list.slice(0, tokens.length + PAGE_SIZE));
|
|
3603
3601
|
};
|
|
3604
3602
|
useEffect(function () {
|
|
3605
|
-
|
|
3603
|
+
setTokens(list.slice(0, PAGE_SIZE));
|
|
3606
3604
|
}, [searchedText]);
|
|
3607
3605
|
useEffect(function () {
|
|
3608
|
-
setHasNextPage(
|
|
3609
|
-
}, [
|
|
3610
|
-
var innerElementType = forwardRef(function (
|
|
3611
|
-
var style =
|
|
3612
|
-
rest = _objectWithoutPropertiesLoose(
|
|
3606
|
+
setHasNextPage(list.length > tokens.length);
|
|
3607
|
+
}, [tokens.length]);
|
|
3608
|
+
var innerElementType = forwardRef(function (_ref, ref) {
|
|
3609
|
+
var style = _ref.style,
|
|
3610
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$D);
|
|
3613
3611
|
return React__default.createElement("div", Object.assign({
|
|
3614
3612
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
3615
3613
|
ref: ref,
|
|
3616
3614
|
style: _extends({}, style, {
|
|
3617
|
-
// eslint-disable-next-line react/prop-types
|
|
3618
3615
|
height: parseFloat(style == null ? void 0 : style.height) + 8 * 2 + "px"
|
|
3619
3616
|
})
|
|
3620
3617
|
}, rest));
|
|
@@ -3624,24 +3621,29 @@ function TokenList(props) {
|
|
|
3624
3621
|
height: '450px'
|
|
3625
3622
|
}
|
|
3626
3623
|
}, React__default.createElement(VirtualizedList, {
|
|
3627
|
-
Item: function Item(
|
|
3628
|
-
var index =
|
|
3629
|
-
style =
|
|
3630
|
-
return React__default.createElement(
|
|
3631
|
-
|
|
3624
|
+
Item: function Item(_ref2) {
|
|
3625
|
+
var index = _ref2.index,
|
|
3626
|
+
style = _ref2.style;
|
|
3627
|
+
return React__default.createElement(TokenItem, {
|
|
3628
|
+
token: tokens[index],
|
|
3632
3629
|
style: style,
|
|
3633
|
-
|
|
3630
|
+
onClick: changeSelected,
|
|
3631
|
+
selected: isSelected(tokens[index])
|
|
3634
3632
|
});
|
|
3635
3633
|
},
|
|
3636
3634
|
hasNextPage: hasNextPage,
|
|
3637
|
-
|
|
3638
|
-
itemCount: filteredTokens.length,
|
|
3635
|
+
itemCount: tokens.length,
|
|
3639
3636
|
loadNextPage: loadNextPage,
|
|
3640
3637
|
innerElementType: innerElementType,
|
|
3641
3638
|
size: 56
|
|
3642
3639
|
}));
|
|
3643
3640
|
}
|
|
3644
3641
|
|
|
3642
|
+
var filterTokens = function filterTokens(list, searchedFor) {
|
|
3643
|
+
return list.filter(function (token) {
|
|
3644
|
+
return containsText(token.symbol, searchedFor) || containsText(token.address || '', searchedFor) || containsText(token.name || '', searchedFor);
|
|
3645
|
+
});
|
|
3646
|
+
};
|
|
3645
3647
|
function TokenSelector(props) {
|
|
3646
3648
|
var list = props.list,
|
|
3647
3649
|
type = props.type,
|
|
@@ -3660,7 +3662,7 @@ function TokenSelector(props) {
|
|
|
3660
3662
|
}, function (searchedFor) {
|
|
3661
3663
|
return React__default.createElement(TokenList, {
|
|
3662
3664
|
searchedText: searchedFor,
|
|
3663
|
-
list: list,
|
|
3665
|
+
list: filterTokens(list, searchedFor),
|
|
3664
3666
|
selected: selected,
|
|
3665
3667
|
selectedList: selectedList,
|
|
3666
3668
|
multiSelect: multiSelect,
|