diff options
author | frankiebee <frankie.diamond@gmail.com> | 2017-08-08 04:24:58 +0800 |
---|---|---|
committer | frankiebee <frankie.diamond@gmail.com> | 2017-08-08 04:24:58 +0800 |
commit | f3b42f1e3389253c4f5b4e78fa20ae8c80ef3578 (patch) | |
tree | cba6f24fd72a137c2ebe5589261a73447be186be /ui/app/components/dropdown.js | |
parent | e7f838e626ff1ce29490a081d7ee3f917745dd62 (diff) | |
parent | 57abc58d623b66a091987a944d8c45737f4feabe (diff) | |
download | tangerine-wallet-browser-f3b42f1e3389253c4f5b4e78fa20ae8c80ef3578.tar tangerine-wallet-browser-f3b42f1e3389253c4f5b4e78fa20ae8c80ef3578.tar.gz tangerine-wallet-browser-f3b42f1e3389253c4f5b4e78fa20ae8c80ef3578.tar.bz2 tangerine-wallet-browser-f3b42f1e3389253c4f5b4e78fa20ae8c80ef3578.tar.lz tangerine-wallet-browser-f3b42f1e3389253c4f5b4e78fa20ae8c80ef3578.tar.xz tangerine-wallet-browser-f3b42f1e3389253c4f5b4e78fa20ae8c80ef3578.tar.zst tangerine-wallet-browser-f3b42f1e3389253c4f5b4e78fa20ae8c80ef3578.zip |
Merge branch 'master' into transactionControllerRefractor
Diffstat (limited to 'ui/app/components/dropdown.js')
-rw-r--r-- | ui/app/components/dropdown.js | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/ui/app/components/dropdown.js b/ui/app/components/dropdown.js new file mode 100644 index 000000000..34c7149ee --- /dev/null +++ b/ui/app/components/dropdown.js @@ -0,0 +1,94 @@ +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); } + ` + ), + ...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, +} + +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, +} + +module.exports = { + Dropdown, + DropdownMenuItem, +} |