@rango-dev/ui 0.1.14-next.10 → 0.1.14-next.12

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 (125) hide show
  1. package/dist/components/Alert/Alert.stories.d.ts +4 -4
  2. package/dist/components/BestRoute/BestRoute.stories.d.ts +5 -4
  3. package/dist/components/BlockchainsList/BlockchainsList.stories.d.ts +2 -3
  4. package/dist/components/Button/Button.stories.d.ts +5 -4
  5. package/dist/components/Checkbox/Checkbox.stories.d.ts +5 -4
  6. package/dist/components/Chip/Chip.stories.d.ts +2 -3
  7. package/dist/components/ColorPicker/ColorPicker.stories.d.ts +2 -3
  8. package/dist/components/Divider/Divider.d.ts +1 -1
  9. package/dist/components/Drawer/Drawer.stories.d.ts +2 -3
  10. package/dist/components/Icon/Icons.stories.d.ts +2 -3
  11. package/dist/components/LiquiditySourceList/LiquiditySource.stories.d.ts +2 -3
  12. package/dist/components/Modal/Modal.stories.d.ts +2 -3
  13. package/dist/components/Radio/Radio.stories.d.ts +2 -3
  14. package/dist/components/SecondaryPage/SecondaryPage.stories.d.ts +4 -3
  15. package/dist/components/SelectableWalletList/SelectableWalletList.stories.d.ts +5 -4
  16. package/dist/components/Skeleton/Skeleton.stories.d.ts +2 -3
  17. package/dist/components/Spinner/Spinner.stories.d.ts +2 -3
  18. package/dist/components/StatusDrawer/StatusDrawer.stories.d.ts +2 -3
  19. package/dist/components/StepDetail/StepDetail.stories.d.ts +5 -4
  20. package/dist/components/SwapDetail/SwapDetail.stories.d.ts +5 -4
  21. package/dist/components/Switch/Switch.stories.d.ts +2 -3
  22. package/dist/components/TextField/TextField.stories.d.ts +1 -2
  23. package/dist/components/TokenList/TokenList.stories.d.ts +2 -3
  24. package/dist/components/Tooltip/Tooltip.stories.d.ts +5 -4
  25. package/dist/components/Typography/Typography.stories.d.ts +5 -4
  26. package/dist/components/Wallet/Wallet.stories.d.ts +4 -3
  27. package/dist/components/index.d.ts +0 -6
  28. package/dist/containers/BlockchainSelector/BlockchainSelector.stories.d.ts +5 -0
  29. package/dist/containers/ConfirmSwap/ConfirmSwap.stories.d.ts +5 -4
  30. package/dist/containers/ConnectWalletsModal/ConnectWallets.stories.d.ts +5 -0
  31. package/dist/containers/History/History.stories.d.ts +7 -4
  32. package/dist/containers/LiquiditySourcesSelector/LiquiditySourcesSelector.stories.d.ts +5 -0
  33. package/dist/containers/Settings/Settings.stories.d.ts +5 -0
  34. package/dist/containers/SwapHistory/SwapHistory.stories.d.ts +12 -4
  35. package/dist/{components → containers}/TokenSelector/TokenSelector.d.ts +1 -1
  36. package/dist/containers/TokenSelector/TokenSelector.stories.d.ts +5 -0
  37. package/dist/containers/index.d.ts +5 -0
  38. package/dist/index.js +6 -6
  39. package/dist/index.js.map +4 -4
  40. package/package.json +12 -7
  41. package/src/components/Alert/Alert.stories.tsx +19 -6
  42. package/src/components/Alert/Alert.tsx +3 -3
  43. package/src/components/BestRoute/BestRoute.stories.tsx +15 -5
  44. package/src/components/BestRoute/mock.ts +1 -1
  45. package/src/components/BlockchainsList/BlockchainsList.stories.tsx +9 -3
  46. package/src/components/BlockchainsList/mockData.ts +603 -108
  47. package/src/components/Button/Button.stories.tsx +8 -3
  48. package/src/components/Checkbox/Checkbox.stories.tsx +6 -2
  49. package/src/components/Chip/Chip.stories.tsx +23 -7
  50. package/src/components/ColorPicker/ColorPicker.stories.tsx +6 -3
  51. package/src/components/Divider/Divider.tsx +113 -11
  52. package/src/components/Drawer/Drawer.stories.tsx +8 -11
  53. package/src/components/Icon/Icons.stories.tsx +8 -4
  54. package/src/components/LiquiditySourceList/LiquiditySource.stories.tsx +6 -3
  55. package/src/components/LiquiditySourceList/LiquiditySourceList.tsx +3 -3
  56. package/src/components/Modal/Modal.stories.tsx +9 -10
  57. package/src/components/Radio/Radio.stories.tsx +12 -7
  58. package/src/components/SecondaryPage/SecondaryPage.stories.tsx +12 -3
  59. package/src/components/SelectableWalletList/SelectableWalletList.stories.tsx +2 -2
  60. package/src/components/Skeleton/Skeleton.stories.tsx +6 -2
  61. package/src/components/Spinner/Spinner.stories.tsx +6 -2
  62. package/src/components/StatusDrawer/StatusDrawer.stories.tsx +7 -2
  63. package/src/components/StatusDrawer/StatusDrawer.tsx +2 -2
  64. package/src/components/StepDetail/StepDetail.stories.tsx +9 -2
  65. package/src/components/SwapDetail/SwapDetail.stories.tsx +5 -2
  66. package/src/components/SwapDetail/SwapDetail.tsx +3 -3
  67. package/src/components/SwapDetail/Token.tsx +4 -4
  68. package/src/components/Switch/Switch.stories.tsx +2 -2
  69. package/src/components/TextField/TextField.stories.tsx +3 -2
  70. package/src/components/TokenList/TokenList.stories.tsx +3 -3
  71. package/src/components/Tooltip/Tooltip.stories.tsx +7 -2
  72. package/src/components/Typography/Typography.stories.tsx +2 -2
  73. package/src/components/Wallet/Wallet.stories.tsx +7 -13
  74. package/src/components/index.ts +0 -6
  75. package/src/containers/BlockchainSelector/BlockchainSelector.stories.tsx +41 -0
  76. package/src/{components → containers}/BlockchainSelector/BlockchainSelector.tsx +5 -5
  77. package/src/containers/ConfirmSwap/ConfirmSwap.stories.tsx +223 -10
  78. package/src/containers/ConfirmSwap/ConfirmSwap.tsx +21 -12
  79. package/src/containers/ConnectWalletsModal/ConnectWallets.stories.tsx +24 -0
  80. package/src/{components → containers}/ConnectWalletsModal/ConnectWalletsModal.tsx +3 -3
  81. package/src/containers/History/History.stories.tsx +2 -2
  82. package/src/containers/History/History.tsx +1 -1
  83. package/src/containers/History/mock.ts +3 -3
  84. package/src/{components → containers}/LiquiditySourcesSelector/LiquiditySourcesSelector.stories.tsx +7 -4
  85. package/src/{components → containers}/LiquiditySourcesSelector/LiquiditySourcesSelector.tsx +2 -3
  86. package/src/containers/Settings/Settings.stories.tsx +27 -0
  87. package/src/{components → containers}/Settings/Settings.tsx +11 -8
  88. package/src/containers/SwapHistory/SwapHistory.stories.tsx +3 -3
  89. package/src/containers/SwapHistory/SwapHistory.tsx +4 -5
  90. package/src/containers/SwapHistory/mock.ts +2 -2
  91. package/src/{components → containers}/TokenSelector/TokenSelector.stories.tsx +7 -8
  92. package/src/{components → containers}/TokenSelector/TokenSelector.tsx +7 -6
  93. package/src/containers/index.ts +5 -0
  94. package/dist/components/BlockchainSelector/BlockchainSelector.stories.d.ts +0 -6
  95. package/dist/components/ConnectWalletsModal/ConnectWallets.stories.d.ts +0 -6
  96. package/dist/components/LiquiditySourcesSelector/LiquiditySourcesSelector.stories.d.ts +0 -6
  97. package/dist/components/Settings/Settings.stories.d.ts +0 -6
  98. package/dist/components/Spacer/Spacer.d.ts +0 -6
  99. package/dist/components/Spacer/Spacer.stories.d.ts +0 -6
  100. package/dist/components/Spacer/index.d.ts +0 -1
  101. package/dist/components/SwapContainer/SwapContainer.stories.d.ts +0 -6
  102. package/dist/components/TokenSelector/TokenSelector.stories.d.ts +0 -6
  103. package/src/components/BlockchainSelector/BlockchainSelector.stories.tsx +0 -25
  104. package/src/components/ConnectWalletsModal/ConnectWallets.stories.tsx +0 -13
  105. package/src/components/Settings/Settings.stories.tsx +0 -34
  106. package/src/components/Spacer/Spacer.stories.tsx +0 -31
  107. package/src/components/Spacer/Spacer.tsx +0 -128
  108. package/src/components/Spacer/index.ts +0 -1
  109. package/src/components/SwapContainer/SwapContainer.stories.tsx +0 -13
  110. /package/dist/{components → containers}/BlockchainSelector/BlockchainSelector.d.ts +0 -0
  111. /package/dist/{components → containers}/BlockchainSelector/index.d.ts +0 -0
  112. /package/dist/{components → containers}/ConnectWalletsModal/ConnectWalletsModal.d.ts +0 -0
  113. /package/dist/{components → containers}/ConnectWalletsModal/index.d.ts +0 -0
  114. /package/dist/{components → containers}/ConnectWalletsModal/mockData.d.ts +0 -0
  115. /package/dist/{components → containers}/LiquiditySourcesSelector/LiquiditySourcesSelector.d.ts +0 -0
  116. /package/dist/{components → containers}/LiquiditySourcesSelector/index.d.ts +0 -0
  117. /package/dist/{components → containers}/Settings/Settings.d.ts +0 -0
  118. /package/dist/{components → containers}/Settings/index.d.ts +0 -0
  119. /package/dist/{components → containers}/TokenSelector/index.d.ts +0 -0
  120. /package/src/{components → containers}/BlockchainSelector/index.ts +0 -0
  121. /package/src/{components → containers}/ConnectWalletsModal/index.ts +0 -0
  122. /package/src/{components → containers}/ConnectWalletsModal/mockData.ts +0 -0
  123. /package/src/{components → containers}/LiquiditySourcesSelector/index.ts +0 -0
  124. /package/src/{components → containers}/Settings/index.ts +0 -0
  125. /package/src/{components → containers}/TokenSelector/index.ts +0 -0
@@ -1,11 +1,14 @@
1
1
  import React from 'react';
2
- import { ComponentMeta } from '@storybook/react';
2
+ import { Meta } from '@storybook/react';
3
3
  import { SwapDetail, PropTypes } from './SwapDetail';
4
4
  import { swap } from './mock';
5
5
 
6
6
  export default {
7
7
  title: 'Components/Swap Detail',
8
8
  component: SwapDetail,
9
+ args:{
10
+ status:'running'
11
+ },
9
12
  argTypes: {
10
13
  status: {
11
14
  name: 'status',
@@ -14,6 +17,6 @@ export default {
14
17
  defaultValue: 'running',
15
18
  },
16
19
  },
17
- } as ComponentMeta<typeof SwapDetail>;
20
+ } as Meta<typeof SwapDetail>;
18
21
 
19
22
  export const Main = (props: PropTypes) => <SwapDetail {...props} swap={swap} />;
@@ -3,7 +3,7 @@ import { PendingSwap } from '../../containers/History/types';
3
3
  import { styled } from '../../theme';
4
4
  import { Button } from '../Button';
5
5
  import { ArrowRightIcon } from '../Icon';
6
- import { Spacer } from '../Spacer';
6
+ import { Divider } from '../Divider';
7
7
  import { Spinner } from '../Spinner';
8
8
  import { Token } from './Token';
9
9
  import { limitDecimalPlaces } from '../../helper';
@@ -71,9 +71,9 @@ export function SwapDetail({
71
71
  amount: limitDecimalPlaces(swap.inputAmount),
72
72
  }}
73
73
  />
74
- <Spacer size={12} />
74
+ <Divider size={12} direction="horizontal" />
75
75
  <ArrowRightIcon size={12} />
76
- <Spacer size={12} />
76
+ <Divider size={12} direction="horizontal" />
77
77
  <Token
78
78
  data={{
79
79
  token: {
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { styled } from '../../theme';
3
- import { Spacer } from '../Spacer';
3
+ import { Divider } from '../Divider';
4
4
  import { Image } from '../common';
5
5
 
6
6
  const TokenContainer = styled('div', {
@@ -18,7 +18,7 @@ const TokenContainer = styled('div', {
18
18
 
19
19
  const TokenImage = styled('div', {
20
20
  position: 'relative',
21
- 'img': {
21
+ img: {
22
22
  borderRadius: '50%',
23
23
  },
24
24
  '.overlay': {
@@ -63,12 +63,12 @@ export function Token(props: PropTypes) {
63
63
  <Image src={blockchain.logo} alt={blockchain.name} size={12} />
64
64
  </div>
65
65
  </TokenImage>
66
- <Spacer size={8} />
66
+ <Divider size={8} direction="horizontal" />
67
67
  {!!amount && <span className="amount">{props.data.amount}</span>}
68
68
  {!amount && estimatedAmount && (
69
69
  <span className="amount estimated">{props.data.estimatedAmount}</span>
70
70
  )}
71
- <Spacer size={4} />
71
+ <Divider size={4} direction="horizontal" />
72
72
  {token.symbol}
73
73
  </TokenContainer>
74
74
  );
@@ -1,8 +1,8 @@
1
- import { ComponentMeta } from '@storybook/react';
1
+ import { Meta } from '@storybook/react';
2
2
  import React from 'react';
3
3
  import { Switch, PropTypes } from './Switch';
4
4
 
5
- export default { title: 'Switch', component: Switch } as ComponentMeta<
5
+ export default { title: 'Components/Switch', component: Switch } as Meta<
6
6
  typeof Switch
7
7
  >;
8
8
 
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { ComponentMeta } from '@storybook/react';
2
+ import { Meta } from '@storybook/react';
3
3
 
4
4
  import { TextField, PropTypes } from './TextField';
5
5
  import { SearchIcon } from '../Icon';
@@ -8,6 +8,7 @@ export default {
8
8
  title: 'Components/Text Field',
9
9
 
10
10
  component: TextField,
11
+
11
12
  argTypes: {
12
13
  disabled: {
13
14
  name: 'disabled',
@@ -18,7 +19,7 @@ export default {
18
19
  type: 'string',
19
20
  },
20
21
  },
21
- } as ComponentMeta<typeof TextField>;
22
+ } as Meta<typeof TextField>;
22
23
 
23
24
  export const Main = (args: PropTypes) => <TextField {...args} />;
24
25
 
@@ -1,17 +1,17 @@
1
1
  import React from 'react';
2
- import { ComponentMeta } from '@storybook/react';
2
+ import { Meta } from '@storybook/react';
3
3
  import { TokenList, PropTypes } from './TokenList';
4
4
  import { tokensMeta } from './mockData';
5
5
 
6
6
  export default {
7
- title: 'Token List',
7
+ title: 'Components/Token List',
8
8
  component: TokenList,
9
9
  argTypes: {
10
10
  searchedText: {
11
11
  defaultValue: '',
12
12
  },
13
13
  },
14
- } as ComponentMeta<typeof TokenList>;
14
+ } as Meta<typeof TokenList>;
15
15
 
16
16
  export const Main = (args: PropTypes) => (
17
17
  <TokenList {...args} list={tokensMeta} selected={tokensMeta[0]} />
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { ComponentMeta } from '@storybook/react';
2
+ import { Meta } from '@storybook/react';
3
3
 
4
4
  import { Tooltip, PropTypes } from './Tooltip';
5
5
  import { AddWalletIcon } from '../Icon';
@@ -7,6 +7,11 @@ import { AddWalletIcon } from '../Icon';
7
7
  export default {
8
8
  title: 'Components/Tooltip',
9
9
  component: Tooltip,
10
+ args: {
11
+ content: 'I am a tooltip',
12
+ side: 'top',
13
+ color: 'gray',
14
+ },
10
15
  argTypes: {
11
16
  content: {
12
17
  name: 'content',
@@ -34,7 +39,7 @@ export default {
34
39
  defaultValue: 'gray',
35
40
  },
36
41
  },
37
- } as ComponentMeta<typeof Tooltip>;
42
+ } as Meta<typeof Tooltip>;
38
43
 
39
44
  export const Main = (props: PropTypes) => (
40
45
  <div
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { ComponentMeta } from '@storybook/react';
2
+ import { Meta } from '@storybook/react';
3
3
 
4
4
  import { Typography, PropTypes } from './Typography';
5
5
 
@@ -34,7 +34,7 @@ export default {
34
34
  control: { type: 'boolean' },
35
35
  },
36
36
  },
37
- } as ComponentMeta<typeof Typography>;
37
+ } as Meta<typeof Typography>;
38
38
 
39
39
  export const Main = (props: PropTypes) => (
40
40
  <div>
@@ -1,28 +1,22 @@
1
1
  import React from 'react';
2
- import { ComponentMeta } from '@storybook/react';
2
+ import { Meta } from '@storybook/react';
3
3
 
4
4
  import { PropTypes, Wallet } from './Wallet';
5
5
  import { WalletState } from '../../types/wallet';
6
6
 
7
7
  export default {
8
- title: 'Wallet chip',
8
+ title: 'Components/Wallet chip',
9
9
  component: Wallet,
10
+ args: {
11
+ name: 'Coinbase',
12
+ image: 'https://app.rango.exchange/wallets/coinbase.svg',
13
+ },
10
14
  argTypes: {
11
- title: {
12
- name: 'title',
13
- type: 'string',
14
- defaultValue: 'Coinbase',
15
- },
16
15
  image: {
17
16
  name: 'image',
18
17
  type: 'string',
19
18
  defaultValue: 'https://app.rango.exchange/wallets/coinbase.svg',
20
19
  },
21
- disabled: {
22
- name: 'disabled',
23
- type: 'boolean',
24
- defaultValue: false,
25
- },
26
20
  state: {
27
21
  name: 'wallet state',
28
22
  control: {
@@ -31,6 +25,6 @@ export default {
31
25
  options: Object.values(WalletState),
32
26
  },
33
27
  },
34
- } as ComponentMeta<typeof Wallet>;
28
+ } as Meta<typeof Wallet>;
35
29
 
36
30
  export const Main = (args: PropTypes) => <Wallet {...args}></Wallet>;
@@ -1,23 +1,17 @@
1
1
  export * from './BestRoute';
2
- export * from './BlockchainSelector';
3
2
  export * from './Button';
4
3
  export * from './Checkbox';
5
4
  export * from './Chip';
6
- export * from './ConnectWalletsModal';
7
5
  export * from './Icon';
8
- export * from './LiquiditySourcesSelector';
9
6
  export * from './Modal';
10
7
  export * from './SecondaryPage';
11
8
  export * from './SelectableWalletList';
12
- export * from './Settings';
13
- export * from './Spacer';
14
9
  export * from './Spinner';
15
10
  export * from './StepDetail';
16
11
  export * from './SwapContainer';
17
12
  export * from './SwapDetail';
18
13
  export * from './Switch';
19
14
  export * from './TextField';
20
- export * from './TokenSelector';
21
15
  export * from './Tooltip';
22
16
  export * from './Typography';
23
17
  export * from './Wallet';
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import { Meta } from '@storybook/react';
3
+ import { BlockchainSelector, PropTypes } from './BlockchainSelector';
4
+ import { blockchainMeta } from '../../components/BlockchainsList/mockData';
5
+ import { SwapContainer } from '../../components/SwapContainer/SwapContainer';
6
+
7
+ export default {
8
+ title: 'Containers/Blockchain Selector',
9
+ component: BlockchainSelector,
10
+ args: {
11
+ type: 'Source',
12
+ loadingStatus: 'success',
13
+ },
14
+ argTypes: {
15
+ type: {
16
+ name: 'type',
17
+ defaultValue: 'Source',
18
+ control: {
19
+ type: 'select',
20
+ options: ['Source', 'Destination'],
21
+ },
22
+ },
23
+ loadingStatus: {
24
+ name: 'loadingStatus',
25
+ control: {
26
+ type: 'select',
27
+ options: ['loading', 'success', 'failed'],
28
+ },
29
+ },
30
+ },
31
+ } as Meta<typeof BlockchainSelector>;
32
+
33
+ export const Main = (args: PropTypes) => (
34
+ <SwapContainer>
35
+ <BlockchainSelector
36
+ {...args}
37
+ list={blockchainMeta}
38
+ selected={blockchainMeta[0]}
39
+ />
40
+ </SwapContainer>
41
+ );
@@ -1,14 +1,14 @@
1
1
  import React from 'react';
2
2
  import { BlockchainMeta } from 'rango-sdk';
3
- import { BlockchainsList } from '../BlockchainsList';
4
- import { SecondaryPage } from '../SecondaryPage/SecondaryPage';
5
- import { Spinner } from '../Spinner';
3
+ import { BlockchainsList } from '../../components/BlockchainsList';
4
+ import { SecondaryPage } from '../../components/SecondaryPage/SecondaryPage';
5
+ import { Spinner } from '../../components/Spinner';
6
6
  import { styled } from '../../theme';
7
7
  import { CSSProperties } from '@stitches/react';
8
8
  import { containsText } from '../../helper';
9
9
  import { LoadingStatus } from '../../types/meta';
10
- import { LoadingFailedAlert } from '../Alert/LoadingFailedAlert';
11
- import { NotFoundAlert } from '../Alert/NotFoundAlert';
10
+ import { LoadingFailedAlert } from '../../components/Alert/LoadingFailedAlert';
11
+ import { NotFoundAlert } from '../../components/Alert/NotFoundAlert';
12
12
  import { LoaderContainer } from '../TokenSelector/TokenSelector';
13
13
 
14
14
  const ListContainer = styled('div', {
@@ -1,22 +1,235 @@
1
- import React from 'react';
2
- import { ComponentMeta } from '@storybook/react';
1
+ import { Meta } from '@storybook/react';
3
2
  import { ConfirmSwap, PropTypes } from './ConfirmSwap';
4
- import { exampleFor5Wallets, wallets } from './mock';
3
+ import { exampleFor5Wallets, wallets, bestRoute } from './mock';
4
+ import React from 'react';
5
+ import { Button, Typography, Divider, Image, GasIcon, styled } from '../../';
6
+ import { BestRouteResponse } from 'rango-sdk';
7
+ import { ChevronRightIcon } from '../../components';
8
+ const Box = styled('div', {
9
+ display: 'flex',
10
+ flexDirection: 'column',
11
+ width: '100%',
12
+ overflow: 'hidden',
13
+ });
14
+
15
+ const Container = styled('div', {
16
+ boxSizing: 'border-box',
17
+ borderRadius: '$5',
18
+ padding: '$8 $16 $16 $16',
19
+
20
+ variants: {
21
+ type: {
22
+ filled: {
23
+ backgroundColor: '$neutral100',
24
+ },
25
+ outlined: {
26
+ border: '1px solid $neutral100',
27
+ },
28
+ },
29
+ },
30
+
31
+ defaultVariants: {
32
+ type: 'filled',
33
+ },
34
+
35
+ '.head': {
36
+ display: 'flex',
37
+ justifyContent: 'space-between',
38
+ alignItems: 'center',
39
+ minHeight: '32px',
40
+ '.usd-value': {
41
+ paddingLeft: '$8',
42
+ },
43
+ },
44
+ '.form': {
45
+ display: 'flex',
46
+ width: '100%',
47
+ padding: '$2 0',
48
+ '.selectors': {
49
+ width: '35%',
50
+
51
+ '._text': {
52
+ whiteSpace: 'nowrap',
53
+ overflow: 'hidden',
54
+ textOverflow: 'ellipsis',
55
+ },
56
+ },
57
+ '.amount': {
58
+ width: '30%',
59
+ },
60
+ },
61
+ });
62
+
63
+ const OutputContainer = styled('div', {
64
+ windth: '100%',
65
+ height: '$48',
66
+ borderRadius: '$5',
67
+ backgroundColor: '$surface',
68
+ border: '1px solid transparent',
69
+ position: 'relative',
70
+ display: 'flex',
71
+ alignItems: 'center',
72
+ paddingLeft: '$8',
73
+ paddingRight: '$8',
74
+ });
75
+
76
+ const TokenPreview = ({
77
+ chain,
78
+ token,
79
+ ...props
80
+ }: {
81
+ label: string;
82
+ amount: string;
83
+ usdValue?: number;
84
+ chain: {
85
+ displayName: string;
86
+ logo: string;
87
+ };
88
+ token: {
89
+ symbol: string;
90
+ image: string;
91
+ };
92
+ }) => (
93
+ <Box>
94
+ <Container type={'outlined'}>
95
+ <div className="head">
96
+ <Typography variant="body2" color="neutral800">
97
+ {props.label}
98
+ </Typography>
99
+ <div>
100
+ <Typography
101
+ variant="caption"
102
+ color="neutral600"
103
+ className="usd-value">{`$${props.usdValue}`}</Typography>
104
+ </div>
105
+ </div>
106
+ <div className="form">
107
+ <Button
108
+ className="selectors"
109
+ variant="outlined"
110
+ prefix={<Image src={chain.logo} size={24} />}
111
+ align="start"
112
+ size="large">
113
+ {chain.displayName}
114
+ </Button>
115
+ <Divider size={12} direction="horizontal" />
116
+ <Button
117
+ className="selectors"
118
+ variant="outlined"
119
+ prefix={<Image src={token.image} size={24} />}
120
+ size="large"
121
+ align="start">
122
+ {token.symbol}
123
+ </Button>
124
+ <Divider size={12} direction="horizontal" />
125
+ <div className="amount">
126
+ <OutputContainer>
127
+ <Typography variant="h4">{props.amount}</Typography>
128
+ </OutputContainer>
129
+ </div>
130
+ </div>
131
+ </Container>
132
+ </Box>
133
+ );
134
+ const OverviewContainer = styled('div', {
135
+ display: 'flex',
136
+ alignItems: 'center',
137
+ justifyContent: 'space-between',
138
+ padding: '$8',
139
+ borderRadius: '$5',
140
+ backgroundColor: '$neutral100',
141
+ color: '$neutral800',
142
+ fontSize: '$12',
143
+
144
+ '.routes': {
145
+ display: 'flex',
146
+ alignItems: 'center',
147
+ },
148
+ '.fee': {
149
+ display: 'flex',
150
+ alignItems: 'center',
151
+ },
152
+ });
153
+
154
+ const RoutesOverview = (props: { routes: BestRouteResponse; totalFee?: string }) => {
155
+ const swaps = props.routes.result?.swaps;
156
+ return (
157
+ <OverviewContainer>
158
+ <div className="routes">
159
+ {swaps?.map((swap, idx) => {
160
+ const isLast = idx + 1 == swaps.length;
161
+ return (
162
+ <React.Fragment key={idx}>
163
+ <div className="route">{swap.from.symbol}</div>
164
+ <ChevronRightIcon size={12} />
165
+ {isLast ? <div className="route">{swap.to.symbol}</div> : null}
166
+ </React.Fragment>
167
+ );
168
+ })}
169
+ </div>
170
+ <div className="fee">
171
+ <GasIcon size={12} />
172
+ <Divider size={4} direction="horizontal" />${props.totalFee}
173
+ </div>
174
+ </OverviewContainer>
175
+ );
176
+ };
177
+
178
+ const previewInputs = () => (
179
+ <>
180
+ <TokenPreview
181
+ chain={{
182
+ displayName: bestRoute?.result?.swaps[0].from.blockchain || '',
183
+ logo: bestRoute?.result?.swaps[0].from.blockchainLogo || '',
184
+ }}
185
+ token={{
186
+ symbol: bestRoute?.result?.swaps[0].from.symbol || '',
187
+ image: bestRoute?.result?.swaps[0].from.logo || '',
188
+ }}
189
+ usdValue={2}
190
+ amount={'2.99'}
191
+ label="From"
192
+ />
193
+ <Divider size={12} />
194
+ <TokenPreview
195
+ chain={{
196
+ displayName: bestRoute?.result?.swaps[0].to.blockchain || '',
197
+ logo: bestRoute?.result?.swaps[0].to.blockchainLogo || '',
198
+ }}
199
+ token={{
200
+ symbol: bestRoute?.result?.swaps[0].to.symbol || '',
201
+ image: bestRoute?.result?.swaps[0].to.logo || '',
202
+ }}
203
+ usdValue={2}
204
+ amount={'2.99'}
205
+ label="To"
206
+ />
207
+ </>
208
+ );
5
209
 
6
210
  export default {
7
211
  title: 'Containers/ConfirmSwap',
8
212
  component: ConfirmSwap,
9
- argTypes: {
10
- requiredWallets: {
11
- defaultValue: ['BSC', 'OSMOSIS'],
12
- },
213
+ args: {
214
+ requiredWallets: ['BSC', 'OSMOSIS'],
215
+ confirmButtonTitle: 'confirm',
13
216
  },
14
- } as ComponentMeta<typeof ConfirmSwap>;
217
+ } as Meta<typeof ConfirmSwap>;
15
218
 
16
219
  export const Main = (props: PropTypes) => (
17
- <ConfirmSwap {...props} selectableWallets={wallets} />
220
+ <ConfirmSwap
221
+ {...props}
222
+ selectableWallets={wallets}
223
+ previewInputs={<>{previewInputs()}</>}
224
+ previewRoutes={<RoutesOverview routes={bestRoute} totalFee={'0.32'} />}
225
+ />
18
226
  );
19
227
 
20
228
  export const With5Wallets = (props: PropTypes) => (
21
- <ConfirmSwap {...props} selectableWallets={exampleFor5Wallets} />
229
+ <ConfirmSwap
230
+ {...props}
231
+ selectableWallets={exampleFor5Wallets}
232
+ previewInputs={<>{previewInputs()}</>}
233
+ previewRoutes={<RoutesOverview routes={bestRoute} totalFee={'0.32'} />}
234
+ />
22
235
  );
@@ -1,5 +1,5 @@
1
1
  import React, { PropsWithChildren, ReactNode } from 'react';
2
- import { Alert, Spacer } from '../../components';
2
+ import { Alert, Divider } from '../../components';
3
3
  import { Button } from '../../components/Button';
4
4
  import { SecondaryPage } from '../../components/SecondaryPage/SecondaryPage';
5
5
  import { SelectableWalletList } from '../../components/SelectableWalletList';
@@ -54,7 +54,7 @@ const Container = styled('div', {
54
54
 
55
55
  const Alerts = styled('div', { paddingBottom: '$16' });
56
56
 
57
- type Message = string | ReactNode
57
+ type Message = string | ReactNode;
58
58
 
59
59
  export interface PropTypes {
60
60
  onBack: () => void;
@@ -89,6 +89,7 @@ export function ConfirmSwap(props: PropsWithChildren<PropTypes>) {
89
89
  warnings,
90
90
  extraMessages,
91
91
  } = props;
92
+ console.log(props);
92
93
 
93
94
  return (
94
95
  <SecondaryPage
@@ -116,16 +117,26 @@ export function ConfirmSwap(props: PropsWithChildren<PropTypes>) {
116
117
  <Alerts>
117
118
  {errors?.map((error, index) => (
118
119
  <React.Fragment key={index}>
119
- <Spacer direction="vertical" />
120
- <Alert type="error" key={index}
121
- {...(typeof error === 'string') ? {title: error} : {children: error} }/>
120
+ <Divider />
121
+ <Alert
122
+ type="error"
123
+ key={index}
124
+ {...(typeof error === 'string'
125
+ ? { title: error }
126
+ : { children: error })}
127
+ />
122
128
  </React.Fragment>
123
129
  ))}
124
130
  {warnings?.map((warning, index) => (
125
131
  <React.Fragment key={index}>
126
- <Spacer direction="vertical" />
127
- <Alert type="warning" key={index}
128
- {...(typeof warning === 'string') ? {title: warning} : {children: warning} }/>
132
+ <Divider />
133
+ <Alert
134
+ type="warning"
135
+ key={index}
136
+ {...(typeof warning === 'string'
137
+ ? { title: warning }
138
+ : { children: warning })}
139
+ />
129
140
  </React.Fragment>
130
141
  ))}
131
142
  </Alerts>
@@ -133,9 +144,7 @@ export function ConfirmSwap(props: PropsWithChildren<PropTypes>) {
133
144
  {props.previewInputs || props.previewRoutes ? (
134
145
  <Section>
135
146
  {props.previewInputs}
136
- {!!props.previewRoutes ? (
137
- <Spacer size={16} direction="vertical" />
138
- ) : null}
147
+ {!!props.previewRoutes ? <Divider size={16} /> : null}
139
148
  {props.previewRoutes}
140
149
  </Section>
141
150
  ) : null}
@@ -146,7 +155,7 @@ export function ConfirmSwap(props: PropsWithChildren<PropTypes>) {
146
155
  <Container key={index}>
147
156
  <div className="title">
148
157
  <div className="num">{index + 1}</div>
149
- <Spacer size={8} />
158
+ <Divider size={8} direction="horizontal" />
150
159
  <Typography variant="body2">Your {wallet} Wallet</Typography>
151
160
  </div>
152
161
  {list.length === 0 && (
@@ -0,0 +1,24 @@
1
+ import React, { useState } from 'react';
2
+ import { Meta } from '@storybook/react';
3
+ import { ConnectWalletsModal, PropTypes } from './ConnectWalletsModal';
4
+ import { walletsInfo } from './mockData';
5
+
6
+ export default {
7
+ title: 'Containers/Connect Wallets Modal',
8
+ component: ConnectWalletsModal,
9
+ } as Meta<typeof ConnectWalletsModal>;
10
+
11
+ export const Main = (args: PropTypes) => {
12
+ const [open, setOpen] = useState<boolean>(false);
13
+ return (
14
+ <div>
15
+ <button onClick={() => setOpen(true)}>Open Modal</button>
16
+ <ConnectWalletsModal
17
+ {...args}
18
+ list={walletsInfo}
19
+ open={open}
20
+ onClose={() => setOpen(false)}
21
+ />
22
+ </div>
23
+ );
24
+ };