GrowiCompactSubNavigation.jsx 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import { withTranslation } from 'react-i18next';
  4. import { isTrashPage } from '../../../../lib/util/path-utils';
  5. import { createSubscribedElement } from '../UnstatedUtils';
  6. import AppContainer from '../../services/AppContainer';
  7. import RevisionPath from '../Page/RevisionPath';
  8. import PageContainer from '../../services/PageContainer';
  9. import TagLabels from '../Page/TagLabels';
  10. import LikeButton from '../LikeButton';
  11. import BookmarkButton from '../BookmarkButton';
  12. // import PageCreator from './PageCreator';
  13. import ReducedPageCreator from './ReducedPageCreator';
  14. import ReducedRevisionAuthor from './ReducedRevisionAuthor';
  15. // import RevisionAuthor from './RevisionAuthor';
  16. const GrowiCompactSubNavigation = (props) => {
  17. const { appContainer, pageContainer } = props;
  18. const {
  19. path, createdAt, creator, updatedAt, revisionAuthor,
  20. } = pageContainer.state;
  21. // const isVisible = (window.pageYOffset > 122);
  22. // // const positionY = document.getElementById('#grw-navbar');
  23. // const invisiblePosition = 122;
  24. // window.addEventListener('scroll', () => {
  25. // if (isVisible) {
  26. return (
  27. <div className="d-flex align-items-center fixed-top grw-compactsubnavbar-color px-3">
  28. {/* Page Path */}
  29. <div className="title-container mr-auto">
  30. <h2>
  31. <RevisionPath behaviorType={appContainer.config.behaviorType} pageId={pageContainer.state.pageId} pagePath={pageContainer.state.path} />
  32. </h2>
  33. <TagLabels />
  34. </div>
  35. {/* Header Button */}
  36. <div className="ml-1">
  37. <LikeButton pageId={pageContainer.state.pageId} isLiked={pageContainer.state.isLiked} />
  38. </div>
  39. <div>
  40. <BookmarkButton pageId={pageContainer.state.pageId} crowi={appContainer} />
  41. </div>
  42. {/* Page Authors */}
  43. <ul className="authors text-nowrap d-none d-lg-block">
  44. {creator != null && <li><ReducedPageCreator creator={creator} createdAt={createdAt} /></li>}
  45. {revisionAuthor != null && <li className="mt-1"><ReducedRevisionAuthor revisionAuthor={revisionAuthor} updatedAt={updatedAt} /></li>}
  46. </ul>
  47. </div>
  48. );
  49. // }
  50. // }, true);
  51. // return null;
  52. };
  53. /**
  54. * Wrapper component for using unstated
  55. */
  56. const GrowiCompactSubNavigationWrapper = (props) => {
  57. return createSubscribedElement(GrowiCompactSubNavigation, props, [AppContainer, PageContainer]);
  58. };
  59. GrowiCompactSubNavigation.propTypes = {
  60. t: PropTypes.func.isRequired, // i18next
  61. appContainer: PropTypes.instanceOf(AppContainer).isRequired,
  62. pageContainer: PropTypes.instanceOf(PageContainer).isRequired,
  63. };
  64. export default withTranslation()(GrowiCompactSubNavigationWrapper);