@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/ui.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import React__default, { createElement, forwardRef, Fragment, useState, useEffect, useRef } from 'react';
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(InfiniteLoader, {
3478
- isItemLoaded: isItemLoaded,
3479
- itemCount: hasNextPage ? itemCount + 1 : itemCount,
3480
- loadMoreItems: isNextPageLoading ? function () {
3481
- // do nothing
3482
- } : loadNextPage,
3483
- threshold: 1
3484
- }, function (_ref) {
3485
- var onItemsRendered = _ref.onItemsRendered;
3486
- return React__default.createElement(AutoSizer, null, function (_ref2) {
3487
- var width = _ref2.width,
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: listRef,
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
- var filterTokens = function filterTokens(list, searchedText, outputCount) {
3528
- if (searchedText) return list.filter(function (token) {
3529
- return containsText(token.symbol, searchedText) || containsText(token.address || '', searchedText) || containsText(token.name || '', searchedText);
3530
- }).slice(0, outputCount);else return list.slice(0, outputCount);
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 isSelect = function isSelect(token) {
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(false),
3592
- isNextPageLoading = _useState3[0],
3593
- setIsNextPageLoading = _useState3[1];
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
- setIsNextPageLoading(true);
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
- setFilteredTokens(filterTokens(list, searchedText, PAGE_SIZE));
3603
+ setTokens(list.slice(0, PAGE_SIZE));
3606
3604
  }, [searchedText]);
3607
3605
  useEffect(function () {
3608
- setHasNextPage(filterTokens(list, searchedText).length > filterTokens.length);
3609
- }, [filteredTokens.length]);
3610
- var innerElementType = forwardRef(function (_ref2, ref) {
3611
- var style = _ref2.style,
3612
- rest = _objectWithoutPropertiesLoose(_ref2, _excluded$D);
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(_ref3) {
3628
- var index = _ref3.index,
3629
- style = _ref3.style;
3630
- return React__default.createElement(Token, {
3631
- filteredTokens: filteredTokens,
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
- index: index
3630
+ onClick: changeSelected,
3631
+ selected: isSelected(tokens[index])
3634
3632
  });
3635
3633
  },
3636
3634
  hasNextPage: hasNextPage,
3637
- isNextPageLoading: isNextPageLoading,
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,