aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/components/dropdown.js
diff options
context:
space:
mode:
authorfrankiebee <frankie.diamond@gmail.com>2017-08-08 04:24:58 +0800
committerfrankiebee <frankie.diamond@gmail.com>2017-08-08 04:24:58 +0800
commitf3b42f1e3389253c4f5b4e78fa20ae8c80ef3578 (patch)
treecba6f24fd72a137c2ebe5589261a73447be186be /ui/app/components/dropdown.js
parente7f838e626ff1ce29490a081d7ee3f917745dd62 (diff)
parent57abc58d623b66a091987a944d8c45737f4feabe (diff)
downloadtangerine-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.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,
+}