The code powering m.abunchtell.com https://m.abunchtell.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

66 regels
1.9 KiB

  1. import ImmutablePropTypes from 'react-immutable-proptypes';
  2. import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
  3. import AccountContainer from '../../../containers/account_container';
  4. import StatusContainer from '../../../containers/status_container';
  5. import { Link } from 'react-router';
  6. class SearchResults extends React.PureComponent {
  7. render () {
  8. const { results } = this.props;
  9. let accounts, statuses, hashtags;
  10. let count = 0;
  11. if (results.get('accounts') && results.get('accounts').size > 0) {
  12. count += results.get('accounts').size;
  13. accounts = (
  14. <div className='search-results__section'>
  15. {results.get('accounts').map(accountId => <AccountContainer key={accountId} id={accountId} />)}
  16. </div>
  17. );
  18. }
  19. if (results.get('statuses') && results.get('statuses').size > 0) {
  20. count += results.get('statuses').size;
  21. statuses = (
  22. <div className='search-results__section'>
  23. {results.get('statuses').map(statusId => <StatusContainer key={statusId} id={statusId} />)}
  24. </div>
  25. );
  26. }
  27. if (results.get('hashtags') && results.get('hashtags').size > 0) {
  28. count += results.get('hashtags').size;
  29. hashtags = (
  30. <div className='search-results__section'>
  31. {results.get('hashtags').map(hashtag =>
  32. <Link className='search-results__hashtag' to={`/timelines/tag/${hashtag}`}>
  33. #{hashtag}
  34. </Link>
  35. )}
  36. </div>
  37. );
  38. }
  39. return (
  40. <div className='search-results'>
  41. <div className='search-results__header'>
  42. <FormattedMessage id='search_results.total' defaultMessage='{count, number} {count, plural, one {result} other {results}}' values={{ count }} />
  43. </div>
  44. {accounts}
  45. {statuses}
  46. {hashtags}
  47. </div>
  48. );
  49. }
  50. }
  51. SearchResults.propTypes = {
  52. results: ImmutablePropTypes.map.isRequired
  53. };
  54. export default SearchResults;