aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/components/dropdown.js
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2017-08-08 01:52:08 +0800
committerkumavis <aaron@kumavis.me>2017-08-08 01:52:08 +0800
commit78aa957e5ab5bd3e7f7fb4628c82de8ae312750f (patch)
treeffe2ece4164b9d6c70196dd3ab608244bdf95281 /ui/app/components/dropdown.js
parent82ba2c95ee98487dd465e5aabd45f18d46e89727 (diff)
parent57abc58d623b66a091987a944d8c45737f4feabe (diff)
downloadtangerine-wallet-browser-78aa957e5ab5bd3e7f7fb4628c82de8ae312750f.tar.gz
tangerine-wallet-browser-78aa957e5ab5bd3e7f7fb4628c82de8ae312750f.tar.zst
tangerine-wallet-browser-78aa957e5ab5bd3e7f7fb4628c82de8ae312750f.zip
Merge branch 'master' of github.com:MetaMask/metamask-extension into greenkeeper/initial
Diffstat (limited to 'ui/app/components/dropdown.js')
-rw-r--r--ui/app/components/dropdown.js94
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,
+}