PageContentFooter.jsx 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import AuthorInfo from './Navbar/AuthorInfo';
  4. import AppContainer from '~/client/services/AppContainer';
  5. import PageContainer from '~/client/services/PageContainer';
  6. import { withUnstatedContainers } from './UnstatedUtils';
  7. import { useCurrentCreatedAt, useCurrentUpdatedAt } from '~/stores/context';
  8. const PageContentFooter = (props) => {
  9. const { pageContainer } = props;
  10. const { data: createdAt } = useCurrentCreatedAt();
  11. const { data: updatedAt } = useCurrentUpdatedAt();
  12. const {
  13. creator, revisionAuthor,
  14. } = pageContainer.state;
  15. return (
  16. <div className="page-content-footer py-4 d-edit-none d-print-none">
  17. <div className="grw-container-convertible">
  18. <div className="page-meta">
  19. <AuthorInfo user={creator} date={createdAt} mode="create" locate="footer" />
  20. <AuthorInfo user={revisionAuthor} date={updatedAt} mode="update" locate="footer" />
  21. </div>
  22. </div>
  23. </div>
  24. );
  25. };
  26. /**
  27. * Wrapper component for using unstated
  28. */
  29. const PageContentFooterWrapper = withUnstatedContainers(PageContentFooter, [AppContainer, PageContainer]);
  30. PageContentFooter.propTypes = {
  31. appContainer: PropTypes.instanceOf(AppContainer).isRequired,
  32. pageContainer: PropTypes.instanceOf(PageContainer).isRequired,
  33. };
  34. export default PageContentFooterWrapper;