Create Balance component and make token symbols smaller than token amounts
This commit is contained in:
27
packages/website/ts/components/ui/balance.tsx
Normal file
27
packages/website/ts/components/ui/balance.tsx
Normal file
@@ -0,0 +1,27 @@
|
||||
import { BigNumber } from '@0xproject/utils';
|
||||
import * as React from 'react';
|
||||
import { Container } from 'ts/components/ui/container';
|
||||
import { Text } from 'ts/components/ui/text';
|
||||
import { utils } from 'ts/utils/utils';
|
||||
|
||||
export interface BalanceProps {
|
||||
amount: BigNumber;
|
||||
decimals: number;
|
||||
symbol: string;
|
||||
}
|
||||
|
||||
export const Balance: React.StatelessComponent<BalanceProps> = ({ amount, decimals, symbol }) => {
|
||||
const formattedAmout = utils.getFormattedAmount(amount, decimals);
|
||||
return (
|
||||
<span>
|
||||
<Text Tag="span" fontSize="16px" fontWeight="700" lineHeight="1em">
|
||||
{formattedAmout}
|
||||
</Text>
|
||||
<Container marginLeft="0.3em" Tag="span">
|
||||
<Text Tag="span" fontSize="12px" fontWeight="700" lineHeight="1em">
|
||||
{symbol}
|
||||
</Text>
|
||||
</Container>
|
||||
</span>
|
||||
);
|
||||
};
|
||||
@@ -2,6 +2,8 @@ import * as React from 'react';
|
||||
|
||||
type StringOrNum = string | number;
|
||||
|
||||
export type ContainerTag = 'div' | 'span';
|
||||
|
||||
export interface ContainerProps {
|
||||
marginTop?: StringOrNum;
|
||||
marginBottom?: StringOrNum;
|
||||
@@ -28,15 +30,21 @@ export interface ContainerProps {
|
||||
right?: string;
|
||||
bottom?: string;
|
||||
zIndex?: number;
|
||||
Tag?: ContainerTag;
|
||||
}
|
||||
|
||||
export const Container: React.StatelessComponent<ContainerProps> = ({ children, className, isHidden, ...style }) => {
|
||||
export const Container: React.StatelessComponent<ContainerProps> = props => {
|
||||
const { children, className, Tag, isHidden, ...style } = props;
|
||||
const visibility = isHidden ? 'hidden' : undefined;
|
||||
return (
|
||||
<div style={{ ...style, visibility }} className={className}>
|
||||
<Tag style={{ ...style, visibility }} className={className}>
|
||||
{children}
|
||||
</div>
|
||||
</Tag>
|
||||
);
|
||||
};
|
||||
|
||||
Container.defaultProps = {
|
||||
Tag: 'div',
|
||||
};
|
||||
|
||||
Container.displayName = 'Container';
|
||||
|
||||
Reference in New Issue
Block a user