f4045ba3d9
* Add eslint-plugin-jsx-a11y. * Fix npm script. * Adjust npm scripts so test also runs lint. * Fix existing lint errors. * Don't break on a11y issues. * Add role and tabIndex. * Add vim and Mac files to .gitignore and .dockerignore. * Handle htmlFor (partially), a that's actually a button. * Fix missing tabIndex. * Add cursor:pointer to load-more * Revert change to load_more. * Fixes based on review. * Update yarn.lock. * Don't try to install fsevents on Linux (hides warning noise).
38 lines
814 B
JavaScript
38 lines
814 B
JavaScript
import PureRenderMixin from 'react-addons-pure-render-mixin';
|
|
|
|
const ColumnHeader = React.createClass({
|
|
|
|
propTypes: {
|
|
icon: React.PropTypes.string,
|
|
type: React.PropTypes.string,
|
|
active: React.PropTypes.bool,
|
|
onClick: React.PropTypes.func
|
|
},
|
|
|
|
mixins: [PureRenderMixin],
|
|
|
|
handleClick () {
|
|
this.props.onClick();
|
|
},
|
|
|
|
render () {
|
|
const { type, active } = this.props;
|
|
|
|
let icon = '';
|
|
|
|
if (this.props.icon) {
|
|
icon = <i className={`fa fa-fw fa-${this.props.icon}`} style={{ display: 'inline-block', marginRight: '5px' }} />;
|
|
}
|
|
|
|
return (
|
|
<div role='button' tabIndex='0' aria-label={type} className={`column-header ${active ? 'active' : ''}`} onClick={this.handleClick}>
|
|
{icon}
|
|
{type}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
});
|
|
|
|
export default ColumnHeader;
|