SearchResultList.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import GrowiRenderer from '../../util/GrowiRenderer';
  4. import Page from '../Page.js';
  5. export default class SearchResultList extends React.Component {
  6. constructor(props) {
  7. super(props);
  8. this.growiRenderer = new GrowiRenderer(this.props.crowi, this.props.crowiRenderer, {mode: 'searchresult'});
  9. }
  10. render() {
  11. var isEnabledLineBreaks = $('#content-main').data('linebreaks-enabled');
  12. const resultList = this.props.pages.map((page) => {
  13. const pageBody = page.revision.body;
  14. return (
  15. <div id={page._id} key={page._id} className="search-result-page">
  16. <h2><a href={page.path}>{page.path}</a></h2>
  17. <Page
  18. crowi={this.props.crowi}
  19. crowiRenderer={this.growiRenderer}
  20. markdown={pageBody}
  21. pagePath={page.path}
  22. highlightKeywords={this.props.searchingKeyword}
  23. />
  24. </div>
  25. );
  26. });
  27. return (
  28. <div>
  29. {resultList}
  30. </div>
  31. );
  32. }
  33. }
  34. SearchResultList.propTypes = {
  35. crowi: PropTypes.object.isRequired,
  36. crowiRenderer: PropTypes.object.isRequired,
  37. pages: PropTypes.array.isRequired,
  38. searchingKeyword: PropTypes.string.isRequired,
  39. };
  40. SearchResultList.defaultProps = {
  41. pages: [],
  42. searchingKeyword: '',
  43. };