PagePathLabel.jsx 896 B

12345678910111213141516171819202122232425262728293031323334
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import DevidedPagePath from '@commons/models/devided-page-path';
  4. const PagePathLabel = (props) => {
  5. const dPagePath = new DevidedPagePath(props.page.path, false, true);
  6. let classNames = [''];
  7. classNames = classNames.concat(props.additionalClassNames);
  8. if (props.isLatterOnly) {
  9. return <span className={classNames.join(' ')}>{dPagePath.latter}</span>;
  10. }
  11. const textElem = dPagePath.isRoot
  12. ? <><strong>/</strong></>
  13. : <>{dPagePath.former}/<strong>{dPagePath.latter}</strong></>;
  14. return <span className={classNames.join(' ')}>{textElem}</span>;
  15. };
  16. PagePathLabel.propTypes = {
  17. page: PropTypes.object.isRequired,
  18. isLatterOnly: PropTypes.bool,
  19. additionalClassNames: PropTypes.arrayOf(PropTypes.string),
  20. };
  21. PagePathLabel.defaultProps = {
  22. additionalClassNames: [],
  23. };
  24. export default PagePathLabel;