SearchResultList.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import PageBody from '../Page/PageBody.js';
  4. export default class SearchResultList extends React.Component {
  5. constructor(props) {
  6. super(props);
  7. }
  8. render() {
  9. var isEnabledLineBreaks = $('#content-main').data('linebreaks-enabled');
  10. // generate options obj
  11. var rendererOptions = {
  12. // see: https://www.npmjs.com/package/marked
  13. marked: {
  14. breaks: isEnabledLineBreaks
  15. }
  16. };
  17. const resultList = this.props.pages.map((page) => {
  18. const pageBody = page.revision.body;
  19. return (
  20. <div id={page._id} key={page._id} className="search-result-page">
  21. <h2><a href={page.path}>{page.path}</a></h2>
  22. <div className="wiki">
  23. <PageBody
  24. className="hige"
  25. page={page}
  26. pageBody={pageBody}
  27. highlightKeywords={this.props.searchingKeyword}
  28. rendererOptions={rendererOptions}
  29. />
  30. </div>
  31. </div>
  32. );
  33. });
  34. return (
  35. <div>
  36. {resultList}
  37. </div>
  38. );
  39. }
  40. }
  41. SearchResultList.propTypes = {
  42. pages: PropTypes.array.isRequired,
  43. searchingKeyword: PropTypes.string.isRequired,
  44. };
  45. SearchResultList.defaultProps = {
  46. pages: [],
  47. searchingKeyword: '',
  48. };