PagePathNavForEditor.jsx 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import { withTranslation } from 'react-i18next';
  4. import LinkedPagePath from '@commons/models/linked-page-path';
  5. import PagePathHierarchicalLink from '@commons/components/PagePathHierarchicalLink';
  6. import { withUnstatedContainers } from '../UnstatedUtils';
  7. import AppContainer from '../../services/AppContainer';
  8. import PageContainer from '../../services/PageContainer';
  9. import RevisionPathControls from '../Page/RevisionPathControls';
  10. import TagLabels from '../Page/TagLabels';
  11. const PagePathNavForEditor = (props) => {
  12. const { pageId, path } = props.pageContainer.state;
  13. const linkedPagePath = new LinkedPagePath(path);
  14. const pagePathHierarchicalLink = <PagePathHierarchicalLink linkedPagePath={linkedPagePath} />;
  15. return (
  16. <div className="grw-page-path-nav-for-edit">
  17. <span className="d-flex align-items-center flex-wrap">
  18. <h3 className="mb-0 grw-page-path-link">{pagePathHierarchicalLink}</h3>
  19. <RevisionPathControls
  20. pageId={pageId}
  21. pagePath={path}
  22. />
  23. </span>
  24. <TagLabels isEditorMode />
  25. </div>
  26. );
  27. };
  28. /**
  29. * Wrapper component for using unstated
  30. */
  31. const PagePathNavForEditorWrapper = withUnstatedContainers(PagePathNavForEditor, [AppContainer, PageContainer]);
  32. PagePathNavForEditor.propTypes = {
  33. t: PropTypes.func.isRequired, // i18next
  34. appContainer: PropTypes.instanceOf(AppContainer).isRequired,
  35. pageContainer: PropTypes.instanceOf(PageContainer).isRequired,
  36. };
  37. export default withTranslation()(PagePathNavForEditorWrapper);