import React from 'react'; import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; import { isTopPage, isUserPage } from '@commons/util/path-utils'; import { createSubscribedElement } from '../UnstatedUtils'; import AppContainer from '../../services/AppContainer'; import PageContainer from '../../services/PageContainer'; const PageManagement = (props) => { const { t, appContainer, pageContainer } = props; const { path } = pageContainer.state; const { currentUser } = appContainer; const isTopPagePath = isTopPage(path); const isUserPagePath = isUserPage(path); function renderDropdownItemForNotTopPage() { return ( <> { t('Move/Rename') } { t('Duplicate') }
); } function renderDropdownItemForDeletablePage() { return ( <>
{ t('Delete') } ); } return ( <>
{!isTopPagePath && renderDropdownItemForNotTopPage()} { t('template.option_label.create/edit') } {(!isTopPagePath && !isUserPagePath) && renderDropdownItemForDeletablePage()}
); }; /** * Wrapper component for using unstated */ const PageManagementWrapper = (props) => { return createSubscribedElement(PageManagement, props, [AppContainer, PageContainer]); }; PageManagement.propTypes = { t: PropTypes.func.isRequired, // i18next appContainer: PropTypes.instanceOf(AppContainer).isRequired, pageContainer: PropTypes.instanceOf(PageContainer).isRequired, }; export default withTranslation()(PageManagementWrapper);