SearchResultList.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. const resultList = this.props.pages.map((page) => {
  12. const pageBody = page.revision.body;
  13. return (
  14. <div id={page._id} key={page._id} className="search-result-page">
  15. <h2><a href={page.path}>{page.path}</a></h2>
  16. <Page
  17. crowi={this.props.crowi}
  18. crowiRenderer={this.growiRenderer}
  19. markdown={pageBody}
  20. pagePath={page.path}
  21. highlightKeywords={this.props.searchingKeyword}
  22. />
  23. </div>
  24. );
  25. });
  26. return (
  27. <div>
  28. {resultList}
  29. </div>
  30. );
  31. }
  32. }
  33. SearchResultList.propTypes = {
  34. crowi: PropTypes.object.isRequired,
  35. crowiRenderer: PropTypes.object.isRequired,
  36. pages: PropTypes.array.isRequired,
  37. searchingKeyword: PropTypes.string.isRequired,
  38. };
  39. SearchResultList.defaultProps = {
  40. pages: [],
  41. searchingKeyword: '',
  42. };