import PropTypes from 'prop-types'; import React from 'react'; import { icons, sortDirections } from 'Helpers/Props'; import LoadingIndicator from 'Components/Loading/LoadingIndicator'; import Icon from 'Components/Icon'; import Table from 'Components/Table/Table'; import TableBody from 'Components/Table/TableBody'; import InteractiveSearchRow from './InteractiveSearchRow'; import styles from './InteractiveSearch.css'; const columns = [ { name: 'protocol', label: 'Source', isSortable: true, isVisible: true }, { name: 'age', label: 'Age', isSortable: true, isVisible: true }, { name: 'title', label: 'Title', isSortable: true, isVisible: true }, { name: 'indexer', label: 'Indexer', isSortable: true, isVisible: true }, { name: 'size', label: 'Size', isSortable: true, isVisible: true }, { name: 'peers', label: 'Peers', isSortable: true, isVisible: true }, { name: 'qualityWeight', label: 'Quality', isSortable: true, isVisible: true }, { name: 'preferredWordScore', label: React.createElement(Icon, { name: icons.SCORE, title: 'Preferred word score' }), isSortable: true, isVisible: true }, { name: 'rejections', label: React.createElement(Icon, { name: icons.DANGER, title: 'Rejections' }), isSortable: true, fixedSortDirection: sortDirections.ASCENDING, isVisible: true }, { name: 'releaseWeight', label: React.createElement(Icon, { name: icons.DOWNLOAD }), isSortable: true, fixedSortDirection: sortDirections.ASCENDING, isVisible: true } ]; function InteractiveSearch(props) { const { searchPayload, isFetching, isPopulated, error, totalReleasesCount, items, sortKey, sortDirection, longDateFormat, timeFormat, onSortPress, onGrabPress } = props; return (