@rango-dev/ui 0.1.10-next.81 → 0.1.10-next.83

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 (51) hide show
  1. package/dist/components/BlockchainSelector/BlockchainSelector.d.ts +1 -0
  2. package/dist/components/BlockchainSelector/BlockchainSelector.stories.d.ts +1 -0
  3. package/dist/components/BlockchainsList/BlockchainsList.d.ts +1 -0
  4. package/dist/components/BlockchainsList/BlockchainsList.stories.d.ts +1 -0
  5. package/dist/components/Chip/Chip.stories.d.ts +1 -0
  6. package/dist/components/ColorPicker/ColorPicker.stories.d.ts +1 -0
  7. package/dist/components/ConnectWalletsModal/ConnectWallets.stories.d.ts +1 -0
  8. package/dist/components/ConnectWalletsModal/ConnectWalletsModal.d.ts +1 -0
  9. package/dist/components/Drawer/Drawer.stories.d.ts +1 -0
  10. package/dist/components/Icon/Icons.stories.d.ts +1 -0
  11. package/dist/components/LiquiditySourceList/LiquiditySource.stories.d.ts +1 -0
  12. package/dist/components/LiquiditySourceList/LiquiditySourceList.d.ts +1 -0
  13. package/dist/components/LiquiditySourcesSelector/LiquiditySourcesSelector.d.ts +1 -0
  14. package/dist/components/LiquiditySourcesSelector/LiquiditySourcesSelector.stories.d.ts +1 -0
  15. package/dist/components/Modal/Modal.stories.d.ts +1 -0
  16. package/dist/components/Radio/Radio.d.ts +1 -0
  17. package/dist/components/Radio/Radio.stories.d.ts +1 -0
  18. package/dist/components/Settings/Settings.d.ts +1 -0
  19. package/dist/components/Settings/Settings.stories.d.ts +1 -0
  20. package/dist/components/Skeleton/Skeleton.d.ts +1 -0
  21. package/dist/components/Skeleton/Skeleton.stories.d.ts +1 -0
  22. package/dist/components/Spacer/Spacer.d.ts +1 -0
  23. package/dist/components/Spacer/Spacer.stories.d.ts +1 -0
  24. package/dist/components/Spinner/Spinner.d.ts +1 -0
  25. package/dist/components/Spinner/Spinner.stories.d.ts +1 -0
  26. package/dist/components/StatusDrawer/StatusDrawer.stories.d.ts +1 -0
  27. package/dist/components/Switch/Switch.d.ts +1 -0
  28. package/dist/components/Switch/Switch.stories.d.ts +1 -0
  29. package/dist/components/TextField/TextField.stories.d.ts +1 -1
  30. package/dist/components/TokenList/TokenItem.d.ts +11 -0
  31. package/dist/components/TokenList/TokenList.d.ts +1 -0
  32. package/dist/components/TokenList/TokenList.stories.d.ts +1 -0
  33. package/dist/components/TokenSelector/TokenSelector.d.ts +1 -0
  34. package/dist/components/TokenSelector/TokenSelector.stories.d.ts +1 -0
  35. package/dist/components/VirtualizedList/VirtualizedList.d.ts +0 -1
  36. package/dist/components/Wallet/State.d.ts +1 -0
  37. package/dist/components/Wallet/Wallet.d.ts +1 -0
  38. package/dist/components/Wallet/Wallet.stories.d.ts +1 -0
  39. package/dist/containers/SwapHistory/SwapHistory.d.ts +1 -0
  40. package/dist/containers/SwapHistory/SwapHistory.stories.d.ts +1 -0
  41. package/dist/ui.cjs.development.js +75 -85
  42. package/dist/ui.cjs.development.js.map +1 -1
  43. package/dist/ui.cjs.production.min.js +1 -1
  44. package/dist/ui.cjs.production.min.js.map +1 -1
  45. package/dist/ui.esm.js +76 -86
  46. package/dist/ui.esm.js.map +1 -1
  47. package/package.json +3 -3
  48. package/src/components/TokenList/TokenItem.tsx +70 -0
  49. package/src/components/TokenList/TokenList.tsx +14 -108
  50. package/src/components/TokenSelector/TokenSelector.tsx +10 -1
  51. 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, 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';
@@ -3477,30 +3477,27 @@ function SwapDetail(_ref) {
3477
3477
  function VirtualizedList(props) {
3478
3478
  var itemCount = props.itemCount,
3479
3479
  hasNextPage = props.hasNextPage,
3480
- isNextPageLoading = props.isNextPageLoading,
3481
3480
  loadNextPage = props.loadNextPage,
3482
3481
  Item = props.Item,
3483
3482
  innerElementType = props.innerElementType,
3484
3483
  size = props.size;
3485
- var listRef = useRef(null);
3486
3484
  var isItemLoaded = function isItemLoaded(index) {
3487
3485
  return !hasNextPage || index < itemCount;
3488
3486
  };
3489
- return React__default.createElement(InfiniteLoader, {
3490
- isItemLoaded: isItemLoaded,
3491
- itemCount: hasNextPage ? itemCount + 1 : itemCount,
3492
- loadMoreItems: isNextPageLoading ? function () {
3493
- // do nothing
3494
- } : loadNextPage,
3495
- threshold: 1
3496
- }, function (_ref) {
3497
- var onItemsRendered = _ref.onItemsRendered;
3498
- return React__default.createElement(AutoSizer, null, function (_ref2) {
3499
- var width = _ref2.width,
3500
- 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;
3501
3498
  return React__default.createElement(VariableSizeList, {
3502
3499
  innerElementType: innerElementType,
3503
- ref: listRef,
3500
+ ref: ref,
3504
3501
  itemSize: function itemSize() {
3505
3502
  return size;
3506
3503
  },
@@ -3520,8 +3517,6 @@ function VirtualizedList(props) {
3520
3517
  });
3521
3518
  }
3522
3519
 
3523
- var _excluded$D = ["style"];
3524
- var PAGE_SIZE = 20;
3525
3520
  var TokenImage = /*#__PURE__*/styled('img', {
3526
3521
  width: '$32',
3527
3522
  maxHeight: '$32',
@@ -3536,11 +3531,44 @@ var TokenAmountContainer = /*#__PURE__*/styled('div', {
3536
3531
  flexDirection: 'column',
3537
3532
  alignItems: 'flex-end'
3538
3533
  });
3539
- var filterTokens = function filterTokens(list, searchedText, outputCount) {
3540
- if (searchedText) return list.filter(function (token) {
3541
- return containsText(token.symbol, searchedText) || containsText(token.address || '', searchedText) || containsText(token.name || '', searchedText);
3542
- }).slice(0, outputCount);else return list.slice(0, outputCount);
3543
- };
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;
3544
3572
  function TokenList(props) {
3545
3573
  var list = props.list,
3546
3574
  searchedText = props.searchedText,
@@ -3554,7 +3582,7 @@ function TokenList(props) {
3554
3582
  setSelected(token);
3555
3583
  onChange(token);
3556
3584
  };
3557
- var isSelect = function isSelect(token) {
3585
+ var isSelected = function isSelected(token) {
3558
3586
  if (multiSelect && selectedList) {
3559
3587
  return selectedList === 'all' || selectedList.map(function (item) {
3560
3588
  return item.symbol + item.address;
@@ -3562,71 +3590,28 @@ function TokenList(props) {
3562
3590
  }
3563
3591
  return (selected == null ? void 0 : selected.symbol) === token.symbol && (selected == null ? void 0 : selected.address) === token.address;
3564
3592
  };
3565
- var Token = function Token(_ref) {
3566
- var _currentToken$balance;
3567
- var filteredTokens = _ref.filteredTokens,
3568
- index = _ref.index,
3569
- style = _ref.style;
3570
- var currentToken = filteredTokens[index];
3571
- return React__default.createElement("div", {
3572
- style: _extends({
3573
- display: 'flex',
3574
- alignItems: 'center',
3575
- width: '100%'
3576
- }, style, {
3577
- height: '48px',
3578
- top: parseFloat(style == null ? void 0 : style.top) + 0 + "px"
3579
- })
3580
- }, React__default.createElement(Button, {
3581
- variant: "outlined",
3582
- size: "large",
3583
- align: "start",
3584
- onClick: changeSelected.bind(null, currentToken),
3585
- type: isSelect(currentToken) ? 'primary' : undefined,
3586
- prefix: React__default.createElement(TokenImage, {
3587
- src: currentToken.image
3588
- }),
3589
- suffix: ((_currentToken$balance = currentToken.balance) == null ? void 0 : _currentToken$balance.amount) && React__default.createElement(TokenAmountContainer, null, React__default.createElement(Typography, {
3590
- variant: "body2"
3591
- }, currentToken.balance.amount), React__default.createElement(Typography, {
3592
- variant: "caption"
3593
- }, currentToken.balance.usdValue + "$"))
3594
- }, React__default.createElement(TokenNameContainer, null, React__default.createElement(Typography, {
3595
- variant: "body1"
3596
- }, currentToken.symbol), React__default.createElement(Typography, {
3597
- variant: "body2"
3598
- }, currentToken.name))));
3599
- };
3600
3593
  var _useState2 = useState(true),
3601
3594
  hasNextPage = _useState2[0],
3602
3595
  setHasNextPage = _useState2[1];
3603
- var _useState3 = useState(false),
3604
- isNextPageLoading = _useState3[0],
3605
- setIsNextPageLoading = _useState3[1];
3606
- var _useState4 = useState(list),
3607
- filteredTokens = _useState4[0],
3608
- setFilteredTokens = _useState4[1];
3596
+ var _useState3 = useState(list),
3597
+ tokens = _useState3[0],
3598
+ setTokens = _useState3[1];
3609
3599
  var loadNextPage = function loadNextPage() {
3610
- setIsNextPageLoading(true);
3611
- setTimeout(function () {
3612
- setIsNextPageLoading(false);
3613
- setFilteredTokens(filterTokens(list, searchedText, filteredTokens.length + PAGE_SIZE));
3614
- }, 0);
3600
+ setTokens(list.slice(0, tokens.length + PAGE_SIZE));
3615
3601
  };
3616
3602
  useEffect(function () {
3617
- setFilteredTokens(filterTokens(list, searchedText, PAGE_SIZE));
3603
+ setTokens(list.slice(0, PAGE_SIZE));
3618
3604
  }, [searchedText]);
3619
3605
  useEffect(function () {
3620
- setHasNextPage(filterTokens(list, searchedText).length > filterTokens.length);
3621
- }, [filteredTokens.length]);
3622
- var innerElementType = forwardRef(function (_ref2, ref) {
3623
- var style = _ref2.style,
3624
- 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);
3625
3611
  return React__default.createElement("div", Object.assign({
3626
3612
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
3627
3613
  ref: ref,
3628
3614
  style: _extends({}, style, {
3629
- // eslint-disable-next-line react/prop-types
3630
3615
  height: parseFloat(style == null ? void 0 : style.height) + 8 * 2 + "px"
3631
3616
  })
3632
3617
  }, rest));
@@ -3636,24 +3621,29 @@ function TokenList(props) {
3636
3621
  height: '450px'
3637
3622
  }
3638
3623
  }, React__default.createElement(VirtualizedList, {
3639
- Item: function Item(_ref3) {
3640
- var index = _ref3.index,
3641
- style = _ref3.style;
3642
- return React__default.createElement(Token, {
3643
- 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],
3644
3629
  style: style,
3645
- index: index
3630
+ onClick: changeSelected,
3631
+ selected: isSelected(tokens[index])
3646
3632
  });
3647
3633
  },
3648
3634
  hasNextPage: hasNextPage,
3649
- isNextPageLoading: isNextPageLoading,
3650
- itemCount: filteredTokens.length,
3635
+ itemCount: tokens.length,
3651
3636
  loadNextPage: loadNextPage,
3652
3637
  innerElementType: innerElementType,
3653
3638
  size: 56
3654
3639
  }));
3655
3640
  }
3656
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
+ };
3657
3647
  function TokenSelector(props) {
3658
3648
  var list = props.list,
3659
3649
  type = props.type,
@@ -3672,7 +3662,7 @@ function TokenSelector(props) {
3672
3662
  }, function (searchedFor) {
3673
3663
  return React__default.createElement(TokenList, {
3674
3664
  searchedText: searchedFor,
3675
- list: list,
3665
+ list: filterTokens(list, searchedFor),
3676
3666
  selected: selected,
3677
3667
  selectedList: selectedList,
3678
3668
  multiSelect: multiSelect,