From c5084f023ac0356660b9480f9e1f477001a61284 Mon Sep 17 00:00:00 2001 From: fragosti Date: Thu, 4 Oct 2018 18:57:40 -0700 Subject: Add Input and AmountInput component --- packages/instant/src/components/amount_input.tsx | 27 ++++++++++++++ .../instant/src/components/instant_heading.tsx | 6 ++-- packages/instant/src/components/ui/container.tsx | 2 ++ packages/instant/src/components/ui/index.ts | 1 + packages/instant/src/components/ui/input.tsx | 42 ++++++++++++++++++++++ 5 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 packages/instant/src/components/amount_input.tsx create mode 100644 packages/instant/src/components/ui/input.tsx (limited to 'packages') diff --git a/packages/instant/src/components/amount_input.tsx b/packages/instant/src/components/amount_input.tsx new file mode 100644 index 000000000..699541bfb --- /dev/null +++ b/packages/instant/src/components/amount_input.tsx @@ -0,0 +1,27 @@ +import { BigNumber } from '@0xproject/utils'; +import * as React from 'react'; + +import { ColorOption } from '../style/theme'; + +import { Container, Flex, Input, Text } from './ui'; + +export interface AmountInputProps { + fontColor?: ColorOption; + fontSize?: string; + value?: BigNumber; + onChange?: (value: BigNumber) => void; +} + +export const AmountInput: React.StatelessComponent = props => ( + + + +); + +AmountInput.defaultProps = {}; diff --git a/packages/instant/src/components/instant_heading.tsx b/packages/instant/src/components/instant_heading.tsx index 52c4bb2db..3da280652 100644 --- a/packages/instant/src/components/instant_heading.tsx +++ b/packages/instant/src/components/instant_heading.tsx @@ -1,7 +1,9 @@ +import { BigNumber } from '@0xproject/utils'; import * as React from 'react'; import { ColorOption } from '../style/theme'; +import { AmountInput } from './amount_input'; import { Container, Flex, Text } from './ui'; export interface InstantHeadingProps {} @@ -22,9 +24,7 @@ export const InstantHeading: React.StatelessComponent = pro - - 0.00 - + rep diff --git a/packages/instant/src/components/ui/container.tsx b/packages/instant/src/components/ui/container.tsx index 64b5d4129..c45f6e5e9 100644 --- a/packages/instant/src/components/ui/container.tsx +++ b/packages/instant/src/components/ui/container.tsx @@ -22,6 +22,7 @@ export interface ContainerProps { border?: string; borderColor?: ColorOption; borderTop?: string; + borderBottom?: string; className?: string; backgroundColor?: ColorOption; hasBoxShadow?: boolean; @@ -50,6 +51,7 @@ export const Container = styled(PlainContainer)` ${props => cssRuleIfExists(props, 'border-radius')} ${props => cssRuleIfExists(props, 'border')} ${props => cssRuleIfExists(props, 'border-top')} + ${props => cssRuleIfExists(props, 'border-bottom')} ${props => (props.hasBoxShadow ? `box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.1)` : '')}; background-color: ${props => (props.backgroundColor ? props.theme[props.backgroundColor] : 'none')}; border-color: ${props => (props.borderColor ? props.theme[props.borderColor] : 'none')}; diff --git a/packages/instant/src/components/ui/index.ts b/packages/instant/src/components/ui/index.ts index dca63b65c..bf5f6c700 100644 --- a/packages/instant/src/components/ui/index.ts +++ b/packages/instant/src/components/ui/index.ts @@ -2,3 +2,4 @@ export { Text, Title } from './text'; export { Button } from './button'; export { Flex } from './flex'; export { Container } from './container'; +export { Input } from './input'; diff --git a/packages/instant/src/components/ui/input.tsx b/packages/instant/src/components/ui/input.tsx new file mode 100644 index 000000000..fc4fed14e --- /dev/null +++ b/packages/instant/src/components/ui/input.tsx @@ -0,0 +1,42 @@ +import * as React from 'react'; + +import { ColorOption, styled } from '../../style/theme'; + +import { Container, Flex, Text } from '../ui'; + +export interface InputProps { + className?: string; + value?: string; + width?: string; + fontSize?: string; + fontColor?: ColorOption; + placeholder?: string; + onChange?: (event: React.ChangeEvent) => void; +} + +const PlainInput: React.StatelessComponent = ({ value, className, placeholder, onChange }) => ( + +); + +export const Input = styled(PlainInput)` + font-size: ${props => props.fontSize}; + width: ${props => props.width}; + padding: 0.1em 0em; + font-family: 'Inter UI'; + color: ${props => props.theme[props.fontColor || 'white']}; + background: transparent; + outline: none; + border: none; + &::placeholder { + color: ${props => props.theme[props.fontColor || 'white']}; + opacity: 0.5; + } +`; + +Input.defaultProps = { + width: 'auto', + fontColor: ColorOption.white, + fontSize: '12px', +}; + +Input.displayName = 'Input'; -- cgit v1.2.3