import React, { useState } from 'react'; import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; import { isTopPage } from '@commons/util/path-utils'; import { createSubscribedElement } from '../UnstatedUtils'; import AppContainer from '../../services/AppContainer'; import PageContainer from '../../services/PageContainer'; import PageDeleteModal from '../PageDeleteModal'; const PageManagement = (props) => { const { t, appContainer, pageContainer } = props; const { path, isDeletable, isAbleToDeleteCompletely } = pageContainer.state; const { currentUser } = appContainer; const isTopPagePath = isTopPage(path); const [isPageDeleteModalShown, setIsPageDeleteModalShown] = useState(false); function openPageDeleteModal() { setIsPageDeleteModalShown(true); } function closePageDeleteModal() { setIsPageDeleteModalShown(false); } function renderDropdownItemForNotTopPage() { return ( <> { t('Move/Rename') } { t('Duplicate') }
); } function renderDropdownItemForDeletablePage() { return ( <>
{ t('Delete') } ); } return ( <>
{!isTopPagePath && renderDropdownItemForNotTopPage()} { t('template.option_label.create/edit') } {(!isTopPagePath && isDeletable) && 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);