diff options
author | Alexander Tseung <alextsg@gmail.com> | 2017-12-23 03:00:46 +0800 |
---|---|---|
committer | Alexander Tseung <alextsg@gmail.com> | 2017-12-23 03:00:46 +0800 |
commit | 06410381d4b738fe22aa24973c7f9568d295f570 (patch) | |
tree | 69bd8701cdaa417cb6c0f46deff43414122101db /old-ui/app/components/dropdown.js | |
parent | 06f496310ce7d719bbb5690f307db143ba57a1a7 (diff) | |
parent | a218008adf85dfb5fa8ca93c789e14d9f2090813 (diff) | |
download | tangerine-wallet-browser-06410381d4b738fe22aa24973c7f9568d295f570.tar tangerine-wallet-browser-06410381d4b738fe22aa24973c7f9568d295f570.tar.gz tangerine-wallet-browser-06410381d4b738fe22aa24973c7f9568d295f570.tar.bz2 tangerine-wallet-browser-06410381d4b738fe22aa24973c7f9568d295f570.tar.lz tangerine-wallet-browser-06410381d4b738fe22aa24973c7f9568d295f570.tar.xz tangerine-wallet-browser-06410381d4b738fe22aa24973c7f9568d295f570.tar.zst tangerine-wallet-browser-06410381d4b738fe22aa24973c7f9568d295f570.zip |
Merge branch 'NewUI-flat' into merge-master
Diffstat (limited to 'old-ui/app/components/dropdown.js')
-rw-r--r-- | old-ui/app/components/dropdown.js | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/old-ui/app/components/dropdown.js b/old-ui/app/components/dropdown.js new file mode 100644 index 000000000..cdd864cc3 --- /dev/null +++ b/old-ui/app/components/dropdown.js @@ -0,0 +1,98 @@ +const Component = require('react').Component +const PropTypes = require('react').PropTypes +const h = require('react-hyperscript') +const MenuDroppo = require('./menu-droppo') +const extend = require('xtend') + +const noop = () => {} + +class Dropdown extends Component { + render () { + const { isOpen, onClickOutside, style, innerStyle, children, useCssTransition } = this.props + + const innerStyleDefaults = extend({ + borderRadius: '4px', + padding: '8px 16px', + background: 'rgba(0, 0, 0, 0.8)', + boxShadow: 'rgba(0, 0, 0, 0.15) 0px 2px 2px 2px', + }, innerStyle) + + return h( + MenuDroppo, + { + useCssTransition, + isOpen, + zIndex: 11, + onClickOutside, + style, + innerStyle: innerStyleDefaults, + }, + [ + h( + 'style', + ` + li.dropdown-menu-item:hover { color:rgb(225, 225, 225); } + li.dropdown-menu-item { color: rgb(185, 185, 185); position: relative } + ` + ), + ...children, + ] + ) + } +} + +Dropdown.defaultProps = { + isOpen: false, + onClick: noop, + useCssTransition: false, +} + +Dropdown.propTypes = { + isOpen: PropTypes.bool.isRequired, + onClick: PropTypes.func.isRequired, + children: PropTypes.node, + style: PropTypes.object.isRequired, + onClickOutside: PropTypes.func, + innerStyle: PropTypes.object, + useCssTransition: PropTypes.bool, +} + +class DropdownMenuItem extends Component { + render () { + const { onClick, closeMenu, children, style } = this.props + + return h( + 'li.dropdown-menu-item', + { + onClick: () => { + onClick() + closeMenu() + }, + style: Object.assign({ + listStyle: 'none', + padding: '8px 0px 8px 0px', + fontSize: '18px', + fontStyle: 'normal', + fontFamily: 'Montserrat Regular', + cursor: 'pointer', + display: 'flex', + justifyContent: 'flex-start', + alignItems: 'center', + }, style), + }, + children + ) + } +} + +DropdownMenuItem.propTypes = { + closeMenu: PropTypes.func.isRequired, + onClick: PropTypes.func.isRequired, + children: PropTypes.node, + style: PropTypes.object, +} + +module.exports = { + Dropdown, + DropdownMenuItem, +} |