import Button from './button' import Heading from './heading' import TabBar from './tab_bar' export default class ColumnHeader extends PureComponent { static contextTypes = { router: PropTypes.object, } static propTypes = { title: PropTypes.node, showBackBtn: PropTypes.bool, actions: PropTypes.array, tabs: PropTypes.array, } historyBack = () => { if (window.history && window.history.length === 1) { this.context.router.history.push('/home') } else { this.context.router.history.goBack() } } handleBackClick = () => { this.historyBack() } render() { const { title, showBackBtn, tabs, actions, } = this.props return ( <div className={[_s.default, _s.height100PC, _s.flexRow].join(' ')}> { showBackBtn && <Button color='primary' backgroundColor='none' className={[_s.alignItemsCenter, _s.pl0, _s.justifyContentCenter].join(' ')} icon='back' iconSize='20px' iconClassName={[_s.mr5, _s.fillPrimary].join(' ')} onClick={this.handleBackClick} /> } <div className={[_s.default, _s.height100PC, _s.justifyContentCenter, _s.mr10].join(' ')}> <Heading size='h1'> </Heading> </div> { !!tabs && <TabBar tabs={tabs} /> } { !!actions && <div className={[_s.default, _s.bgTransparent, _s.flexRow, _s.alignItemsCenter, _s.justifyContentCenter, _s.mlAuto].join(' ')}> { actions.map((action, i) => ( <Button backgroundColor='none' color='primary' onClick={() => action.onClick()} key={`column-header-action-btn-${i}`} className={[_s.ml5, _s.px10].join(' ')} icon={action.icon} iconClassName={_s.inheritFill} iconSize='15px' /> )) } </div> } </div> ) } }