import React from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { FormattedMessage, FormattedNumber } from 'react-intl'; import AccountContainer from '../../../containers/account_container'; import StatusContainer from '../../../containers/status_container'; import { Link } from 'react-router-dom'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { Sparklines, SparklinesCurve } from 'react-sparklines'; const shortNumberFormat = number => { if (number < 1000) { return ; } else { return K; } }; const renderHashtag = hashtag => (
#{hashtag.get('name')} {shortNumberFormat(hashtag.getIn(['history', 0, 'accounts']))} }} />
{shortNumberFormat(hashtag.getIn(['history', 0, 'uses']))}
day.get('uses')).toArray()}>
); export default class SearchResults extends ImmutablePureComponent { static propTypes = { results: ImmutablePropTypes.map.isRequired, trends: ImmutablePropTypes.list, fetchTrends: PropTypes.func.isRequired, }; componentDidMount () { const { fetchTrends } = this.props; fetchTrends(); } render () { const { results, trends } = this.props; let accounts, statuses, hashtags; let count = 0; if (results.isEmpty()) { return (
{trends && trends.map(hashtag => renderHashtag(hashtag))}
); } 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 => renderHashtag(hashtag))}
); } return (
{accounts} {statuses} {hashtags}
); } }