import React, { useState } from 'react'; import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; import { isTopPage } from '@commons/util/path-utils'; import { withUnstatedContainers } from '../UnstatedUtils'; import AppContainer from '../../services/AppContainer'; import PageContainer from '../../services/PageContainer'; import PageDeleteModal from '../PageDeleteModal'; import PageRenameModal from '../PageRenameModal'; import PageDuplicateModal from '../PageDuplicateModal'; import CreateTemplateModal from '../CreateTemplateModal'; const PageManagement = (props) => { const { t, appContainer, pageContainer } = props; const { path, isDeletable, isAbleToDeleteCompletely, pageId, } = pageContainer.state; const { currentUser } = appContainer; const isTopPagePath = isTopPage(path); const [isPageRenameModalShown, setIsPageRenameModalShown] = useState(false); const [isPageDuplicateModalShown, setIsPageDuplicateModalShown] = useState(false); const [isPageTemplateModalShown, setIsPageTempleteModalShown] = useState(false); const [isPageDeleteModalShown, setIsPageDeleteModalShown] = useState(false); const [duplicateModalPaths, setDuplicateModalPaths] = useState(false); const [duplicateError, setDuplicateError] = useState(null); function openPageRenameModalHandler() { setIsPageRenameModalShown(true); } function closePageRenameModalHandler() { setIsPageRenameModalShown(false); } async function openPageDuplicateModalHandler() { setIsPageDuplicateModalShown(true); try { const res = await appContainer.apiv3Get('/pages/duplicate', { pageId }); setDuplicateModalPaths(res.data.duplicatePaths); } catch (err) { setDuplicateError(t('modal_duplicate.label.Fail to get subordinated pages')); } } function closePageDuplicateModalHandler() { setIsPageDuplicateModalShown(false); } function openPageTemplateModalHandler() { setIsPageTempleteModalShown(true); } function closePageTemplateModalHandler() { setIsPageTempleteModalShown(false); } function openPageDeleteModalHandler() { setIsPageDeleteModalShown(true); } function closePageDeleteModalHandler() { setIsPageDeleteModalShown(false); } function renderDropdownItemForNotTopPage() { return ( <>
> ); } function renderDropdownItemForDeletablePage() { return ( <> > ); } function renderModals() { return ( <>