import React from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { FormattedMessage, defineMessages, 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 'mastodon/components/icon'; const messages = defineMessages({ dismissSuggestion: { id: 'suggestions.dismiss', defaultMessage: 'Dismiss suggestion' }, }); export default @injectIntl class SearchResults extends ImmutablePureComponent { static propTypes = { results: ImmutablePropTypes.map.isRequired, suggestions: ImmutablePropTypes.list.isRequired, fetchSuggestions: PropTypes.func.isRequired, dismissSuggestion: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, }; componentDidMount () { this.props.fetchSuggestions(); } render () { const { intl, results, suggestions, dismissSuggestion } = this.props; if (results.isEmpty() && !suggestions.isEmpty()) { return (
{suggestions && suggestions.map(accountId => ( ))}
); } 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}
); } }