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 href = encodeURI(urljoin(basePath || '/', linkedPagePath.href)); // eslint-disable-next-line react/prop-types const RootElm = ({ children }) => { return props.isInnerElem ? <>{children} : {children}; }; return ( { isParentExists && ( ) } { isSeparatorRequired && ( / ) } {linkedPagePath.pathName} ); }; PagePathHierarchicalLink.propTypes = { linkedPagePath: PropTypes.instanceOf(LinkedPagePath).isRequired, basePath: PropTypes.string, isInTrash: PropTypes.bool, // !!INTERNAL USE ONLY!! isInnerElem: PropTypes.bool, }; export default PagePathHierarchicalLink;