diff options
author | Fabio Berger <me@fabioberger.com> | 2018-10-15 18:27:56 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2018-10-15 18:27:56 +0800 |
commit | eee0640b07bcddccbddf68618f2772b1de92a18d (patch) | |
tree | 98f132b1b36c507f9bfb66042b7ee6e01338766e /packages/react-shared/src/components/container.tsx | |
parent | 4298da118f8cb7ca54b255576894bc98b7f7b374 (diff) | |
download | dexon-sol-tools-eee0640b07bcddccbddf68618f2772b1de92a18d.tar dexon-sol-tools-eee0640b07bcddccbddf68618f2772b1de92a18d.tar.gz dexon-sol-tools-eee0640b07bcddccbddf68618f2772b1de92a18d.tar.bz2 dexon-sol-tools-eee0640b07bcddccbddf68618f2772b1de92a18d.tar.lz dexon-sol-tools-eee0640b07bcddccbddf68618f2772b1de92a18d.tar.xz dexon-sol-tools-eee0640b07bcddccbddf68618f2772b1de92a18d.tar.zst dexon-sol-tools-eee0640b07bcddccbddf68618f2772b1de92a18d.zip |
chore: many small stylistic changes
Diffstat (limited to 'packages/react-shared/src/components/container.tsx')
-rw-r--r-- | packages/react-shared/src/components/container.tsx | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/packages/react-shared/src/components/container.tsx b/packages/react-shared/src/components/container.tsx new file mode 100644 index 000000000..f2ae68b70 --- /dev/null +++ b/packages/react-shared/src/components/container.tsx @@ -0,0 +1,55 @@ +import * as React from 'react'; + +type StringOrNum = string | number; + +export type ContainerTag = 'div' | 'span'; + +export interface ContainerProps { + marginTop?: StringOrNum; + marginBottom?: StringOrNum; + marginRight?: StringOrNum; + marginLeft?: StringOrNum; + padding?: StringOrNum; + paddingTop?: StringOrNum; + paddingBottom?: StringOrNum; + paddingRight?: StringOrNum; + paddingLeft?: StringOrNum; + backgroundColor?: string; + borderRadius?: StringOrNum; + maxWidth?: StringOrNum; + maxHeight?: StringOrNum; + width?: StringOrNum; + height?: StringOrNum; + minWidth?: StringOrNum; + minHeight?: StringOrNum; + isHidden?: boolean; + className?: string; + position?: 'absolute' | 'fixed' | 'relative' | 'unset'; + display?: 'inline-block' | 'block' | 'inline-flex' | 'inline'; + top?: string; + left?: string; + right?: string; + bottom?: string; + zIndex?: number; + Tag?: ContainerTag; + cursor?: string; + id?: string; + onClick?: (event: React.MouseEvent<HTMLElement>) => void; + overflowX?: 'scroll' | 'hidden' | 'auto' | 'visible'; +} + +export const Container: React.StatelessComponent<ContainerProps> = props => { + const { children, className, Tag, isHidden, id, onClick, ...style } = props; + const visibility = isHidden ? 'hidden' : undefined; + return ( + <Tag id={id} style={{ ...style, visibility }} className={className} onClick={onClick}> + {children} + </Tag> + ); +}; + +Container.defaultProps = { + Tag: 'div', +}; + +Container.displayName = 'Container'; |