UNPKG

yylib-quick-mobile

Version:

yylib-quick-mobile

41 lines 1.36 kB
import React, {Component} from 'react'; import classnames from 'classnames'; import './YYButtonBar.css'; import {isFunction} from '../../utils/FunctionUtil'; import YYButton from './YYButton'; class YYButtonBar extends Component { onClick(e){ if (isFunction(this.props.onClick)) { let itemIndex = e.target.parentNode.getAttribute('data-id')||e.target.parentNode.parentNode.getAttribute('data-id'); if (e.target.parentNode.nodeName==='svg') { itemIndex = e.target.parentNode.parentNode.parentNode.getAttribute('data-id'); } this.props.onClick(itemIndex); } } getChildren() { let {children} = this.props; children = (children&&children.constructor==Array)?children:[children]; if (children) { return children.map((item,index)=>{ let {...restProps} = item.props; return( <div key={index} className='yy-button-bar-item' data-id={index}>{item}</div> ); }); } } render() { let {visible} = this.props; let wrapClz = classnames('yy-button-bar',(!visible&&'hidden'),this.props.className); return ( <div className={wrapClz} onClick={this.onClick.bind(this)}> {this.getChildren()} </div> ); } } YYButtonBar.defaultProps = { visible: true } export default YYButtonBar;