import React from 'react'
import PropTypes from 'prop-types'
import cx from 'classnames'
import Tab from './tab'
import Slide from './slide'
const Header = ({ tabs, onChangeTab, activeTab, full }) => {
const width = 100 / tabs.length
let left = width * activeTab
return (
<div className='header'>
<div className={cx('tab-container', {'full': full})}>
<ul>
{ tabs.map((tab, key) => (
<Tab
key={key}
label={tab.props.label}
icon={tab.props.icon}
active={key === activeTab}
onClick={() => onChangeTab(key)}
/>
)) }
</ul>
<Slide left={`${left}%`} width={`${width}%`} />
</div>
</div>
)
}
Header.propTypes = {
tabs: PropTypes.arrayOf(
PropTypes.element
).isRequired,
onChangeTab: PropTypes.func.isRequired,
activeTab: PropTypes.number.isRequired,
full: PropTypes.bool
}
Header.defaultProps = {
full: false
}
export default Header
|