diff options
author | frankiebee <frankie.diamond@gmail.com> | 2017-04-19 00:20:31 +0800 |
---|---|---|
committer | frankiebee <frankie.diamond@gmail.com> | 2017-04-19 00:20:31 +0800 |
commit | 83811910c84342094be4ac94dca829e8f5ff630f (patch) | |
tree | e7d3731aa0d372b1d6b1ee02f8aae5f6391b0450 | |
parent | d7d13caf05f027dca86882db0a72625db8da167c (diff) | |
download | tangerine-wallet-browser-83811910c84342094be4ac94dca829e8f5ff630f.tar tangerine-wallet-browser-83811910c84342094be4ac94dca829e8f5ff630f.tar.gz tangerine-wallet-browser-83811910c84342094be4ac94dca829e8f5ff630f.tar.bz2 tangerine-wallet-browser-83811910c84342094be4ac94dca829e8f5ff630f.tar.lz tangerine-wallet-browser-83811910c84342094be4ac94dca829e8f5ff630f.tar.xz tangerine-wallet-browser-83811910c84342094be4ac94dca829e8f5ff630f.tar.zst tangerine-wallet-browser-83811910c84342094be4ac94dca829e8f5ff630f.zip |
Create a custom radio list component
-rw-r--r-- | ui/app/components/custom-radio-list.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/ui/app/components/custom-radio-list.js b/ui/app/components/custom-radio-list.js new file mode 100644 index 000000000..201ec11dc --- /dev/null +++ b/ui/app/components/custom-radio-list.js @@ -0,0 +1,61 @@ +const Component = require('react').Component +const h = require('react-hyperscript') +const inherits = require('util').inherits + +module.exports = RadioList + +inherits(RadioList, Component) +function RadioList () { + Component.call(this) +} + +RadioList.prototype.render = function () { + const props = this.props + let activeClass = '.custom-radio-selected' + let inactiveClass = '.custom-radio-inactive' + let { + lables, + defaultFocus, + onClick, + } = props + + + return ( + h('.flex-row', { + style: { + fontSize: '12px', + } + }, [ + h('.flex-column.custom-radios', { + style: { + marginRight: '5px', + } + }, + lables.map((lable, i) => { + let isSelcted = (this.state !== null ) + isSelcted = isSelcted ? (this.state.selected === lable) : (this.props.defaultFocus === lable) + return h(isSelcted ? activeClass : inactiveClass, { + title: lable, + onClick: (event) => { + this.setState({selected: event.target.title}) + props.onClick(event) + } + }) + }), + ), + h('.text', {}, + lables.map((lable) => { + if (props.subtext) { + return h('.flex-row', {}, [ + h('.radio-titles', lable), + h('.radio-titles-subtext', `- ${props.subtext[lable]}`) + ]) + } else { + return h('.radio-titles', lable) + } + }) + ) + ]) + ) +} + |