SearchPageLayout.tsx 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import React, { FC } from 'react';
  2. import { useTranslation } from 'react-i18next';
  3. type SearchResultMeta = {
  4. took : number,
  5. total : number,
  6. results: number
  7. }
  8. type Props = {
  9. SearchControl: React.FunctionComponent,
  10. SearchResultList: React.FunctionComponent,
  11. SearchResultContent: React.FunctionComponent,
  12. searchResultMeta: SearchResultMeta,
  13. searchingKeyword: string
  14. }
  15. const SearchPageLayout: FC<Props> = (props: Props) => {
  16. const { t } = useTranslation('');
  17. const {
  18. SearchResultList, SearchControl, SearchResultContent, searchResultMeta, searchingKeyword,
  19. } = props;
  20. return (
  21. <div className="content-main">
  22. <div className="search-result row" id="search-result">
  23. <div className="col-lg-6 page-list border boder-gray search-result-list px-0" id="search-result-list">
  24. <nav><SearchControl></SearchControl></nav>
  25. <div className="d-flex align-items-start justify-content-between mt-1">
  26. <div className="search-result-meta">
  27. <span className="font-weight-light">{t('search_result.result_meta')} </span>
  28. <span className="h5">{`"${searchingKeyword}"`}</span>
  29. {/* Todo: replace "1-10" to the appropriate value */}
  30. <span className="ml-3">1-10 / {searchResultMeta.total || 0}</span>
  31. </div>
  32. </div>
  33. <div className="page-list">
  34. <ul className="page-list-ul page-list-ul-flat nav nav-pills"><SearchResultList></SearchResultList></ul>
  35. </div>
  36. </div>
  37. <div className="col-lg-6 d-none d-lg-block search-result-content">
  38. <SearchResultContent></SearchResultContent>
  39. </div>
  40. </div>
  41. </div>
  42. );
  43. };
  44. export default SearchPageLayout;