/** * * TableHeader * */ import React from 'react'; import styles from './styles.scss'; class TableHeader extends React.Component { changeSort(name) { if (this.props.sort === name) { this.props.changeSort(`-${name}`); } else if (this.props.sort === `-${name}`) { this.props.changeSort('id'); } else { this.props.changeSort(name); } } render() { // Generate headers list const headers = this.props.headers.map((header, i) => { // Define sort icon let icon; if (this.props.sort === header.name) { icon = ; } else if (this.props.sort === `-${header.name}`) { icon = ; } return ( this.changeSort(header.name)} > {header.label} {icon} ); }); return ( {headers} ); } } TableHeader.propTypes = { changeSort: React.PropTypes.func.isRequired, headers: React.PropTypes.array.isRequired, sort: React.PropTypes.string.isRequired, }; export default TableHeader;