import React from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { FormattedMessage, injectIntl } from 'react-intl'; import AccountContainer from '../../../containers/account_container'; import StatusContainer from '../../../containers/status_container'; import ImmutablePureComponent from 'react-immutable-pure-component'; import Hashtag from '../../../components/hashtag'; import Icon from 'soapbox/components/icon'; import WhoToFollowPanel from '../../ui/components/who_to_follow_panel'; import { getFeatures } from 'soapbox/utils/features'; const mapStateToProps = state => ({ features: getFeatures(state.get('instance')), }); export default @connect(mapStateToProps) @injectIntl class SearchResults extends ImmutablePureComponent { static propTypes = { results: ImmutablePropTypes.map.isRequired, features: PropTypes.object, intl: PropTypes.object.isRequired, }; state = { isSmallScreen: (window.innerWidth <= 895), } render() { const { results, features } = this.props; const { isSmallScreen } = this.state; if (results.isEmpty() && isSmallScreen) { return (
{features.suggestions && }
); } let accounts, statuses, hashtags; let count = 0; if (results.get('accounts') && results.get('accounts').size > 0) { count += results.get('accounts').size; accounts = (
{results.get('accounts').map(accountId => )}
); } if (results.get('statuses') && results.get('statuses').size > 0) { count += results.get('statuses').size; statuses = (
{results.get('statuses').map(statusId => )}
); } if (results.get('hashtags') && results.get('hashtags').size > 0) { count += results.get('hashtags').size; hashtags = (
{results.get('hashtags').map(hashtag => )}
); } return (
{accounts} {statuses} {hashtags}
); } }