SearchResultContent.tsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import React, { FC } from 'react';
  2. import RevisionLoader from '../Page/RevisionLoader';
  3. import AppContainer from '../../client/services/AppContainer';
  4. type Props ={
  5. appContainer: AppContainer,
  6. searchingKeyword:string,
  7. focusedPage : any,
  8. }
  9. const SearchResultContent: FC<Props> = (props: Props) => {
  10. // Temporaly workaround for lint error
  11. // later needs to be fixed: RevisoinRender to typescriptcomponet
  12. const RevisionRenderTypeAny: any = RevisionLoader;
  13. const renderPage = (page) => {
  14. const growiRenderer = props.appContainer.getRenderer('searchresult');
  15. let showTags = false;
  16. if (page.tags != null && page.tags.length > 0) { showTags = true }
  17. return (
  18. <div key={page._id} className="search-result-page mb-5">
  19. <h2>
  20. <a href={page.path} className="text-break">
  21. {page.path}
  22. </a>
  23. {showTags && (
  24. <div className="mt-1 small">
  25. <i className="tag-icon icon-tag"></i> {page.tags.join(', ')}
  26. </div>
  27. )}
  28. </h2>
  29. <RevisionRenderTypeAny
  30. growiRenderer={growiRenderer}
  31. pageId={page._id}
  32. pagePath={page.path}
  33. revisionId={page.revision}
  34. highlightKeywords={props.searchingKeyword}
  35. />
  36. </div>
  37. );
  38. };
  39. const content = renderPage(props.focusedPage);
  40. return (
  41. <div>{content}</div>
  42. );
  43. };
  44. export default SearchResultContent;