import PropTypes from 'prop-types'; import React, { Component } from 'react'; import Icon from 'Components/Icon'; import IconButton from 'Components/Link/IconButton'; import TableOptionsModal from 'Components/Table/TableOptions/TableOptionsModal'; import VirtualTableHeader from 'Components/Table/VirtualTableHeader'; import VirtualTableHeaderCell from 'Components/Table/VirtualTableHeaderCell'; import VirtualTableSelectAllHeaderCell from 'Components/Table/VirtualTableSelectAllHeaderCell'; import { icons } from 'Helpers/Props'; import translate from 'Utilities/String/translate'; import DiscoverMovieTableOptionsConnector from './DiscoverMovieTableOptionsConnector'; import styles from './DiscoverMovieHeader.css'; class DiscoverMovieHeader extends Component { // // Lifecycle constructor(props, context) { super(props, context); this.state = { isTableOptionsModalOpen: false }; } // // Listeners onTableOptionsPress = () => { this.setState({ isTableOptionsModalOpen: true }); }; onTableOptionsModalClose = () => { this.setState({ isTableOptionsModalOpen: false }); }; // // Render render() { const { columns, onTableOptionChange, allSelected, allUnselected, onSelectAllChange, ...otherProps } = this.props; return ( { columns.map((column) => { const { name, label, isSortable, isVisible } = column; if (!isVisible) { return null; } if (name === 'actions') { return ( ); } if (name === 'isRecommendation') { return ( ); } if (name === 'isTrending') { return ( ); } if (name === 'isPopular') { return ( ); } return ( {typeof label === 'function' ? label() : label} ); }) } ); } } DiscoverMovieHeader.propTypes = { columns: PropTypes.arrayOf(PropTypes.object).isRequired, onTableOptionChange: PropTypes.func.isRequired, allSelected: PropTypes.bool.isRequired, allUnselected: PropTypes.bool.isRequired, onSelectAllChange: PropTypes.func.isRequired }; export default DiscoverMovieHeader;