hbm-react-components
Version:
HBM React components
62 lines (52 loc) • 1.27 kB
JavaScript
import React from 'react'
import classnames from 'classnames'
import Icon from '../icon/'
/**
* Header component
*/
export default class Header extends React.Component {
state = {
hasShadow: false
}
static propTypes = {
title: React.PropTypes.string,
subtitle: React.PropTypes.string
}
componentDidMount () {
window.addEventListener('scroll', this.onScroll)
}
componentWillUnmount () {
window.removeEventListener('scroll', this.onScroll)
}
onScroll = () => {
this.setState({
hasShadow: window.scrollY > 0
})
}
render () {
const {title, subtitle, children} = this.props
const klass = classnames({
'Header--shadow': this.state.hasShadow
})
return (
<header className={klass}>
<div className='Header'>
<div className='Header-block'>
<span className='Header-title'>
{title}
</span>
{subtitle &&
<span className='Header-subtitle'>
<Icon.ChevronRight className='Header-chevron' />
{subtitle}
</span>
}
</div>
<div className='Header-block'>
{children}
</div>
</div>
</header>
)
}
}