import React from 'react' import PropTypes from 'prop-types' import SearchingResultsTopPanel from './SearchingResultsTopPanel' import Article from './Article' import DeleteArticlesPopup from './DeleteArticlesPopup' import EmailArticlesPopup from './EmailArticlesPopup' import CommentArticlePopup from './CommentArticlePopup' import ClipArticlesPopup from './ClipArticles/ClipArticlesPopup' import Pager from '../../../../common/Pager/Pager' import EmailConfirmPopup from './EmailConfirmPopup' import NoRecords from '../../../../common/NoRecords' import Loading from '../../../../common/Loading' import { Interpolate, translate } from 'react-i18next' export class SearchingResults extends React.Component { static propTypes = { searchState: PropTypes.object.isRequired, articlesState: PropTypes.object.isRequired, isRefinePanelVisible: PropTypes.bool.isRequired, toggleRefinePanel: PropTypes.func.isRequired, onPager: PropTypes.func.isRequired, actions: PropTypes.object.isRequired, t: PropTypes.func.isRequired }; forEachArticle = (cb) => { const { searchState, articlesState } = this.props return searchState.searchResults .filter((article) => !articlesState.excludedArticles.includes(article.id)) .map(cb) }; render () { const { searchState, articlesState, actions, t } = this.props const isSearchResultsLoaded = searchState.searchResults.length > 0 const numPages = Math.ceil( searchState.searchResultTotalCount / searchState.searchResultLimit ) const noRecords = searchState.searchResultsPending || !isSearchResultsLoaded || !searchState.isSynced if (searchState.searchResultsPending) { return (