import React from 'react'; import PropTypes from 'prop-types'; import urljoin from 'url-join'; import LinkedPagePath from '../models/linked-page-path'; const PagePathHierarchicalLink = (props) => { const { linkedPagePath, basePath, isInTrash } = props; // render root element if (linkedPagePath.isRoot) { if (basePath != null) { return null; } return isInTrash ? ( <> / ) : ( <> / ); } const isParentExists = linkedPagePath.parent != null; const isParentRoot = linkedPagePath.parent?.isRoot; const isSeparatorRequired = isParentExists && !isParentRoot; const isParentInTrash = isInTrash || linkedPagePath.isInTrash; const href = encodeURI(urljoin(basePath || '/', linkedPagePath.href)); return ( <> { isParentExists && ( ) } { isSeparatorRequired && ( / ) } {linkedPagePath.pathName} ); }; PagePathHierarchicalLink.propTypes = { linkedPagePath: PropTypes.instanceOf(LinkedPagePath).isRequired, basePath: PropTypes.string, isInTrash: PropTypes.bool, }; export default PagePathHierarchicalLink;