import React, { useState } from 'react'; import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; import { withUnstatedContainers } from '../UnstatedUtils'; import AppContainer from '../../services/AppContainer'; import PageContainer from '../../services/PageContainer'; import UserPicture from '../User/UserPicture'; import PutbackPageModal from '../PutbackPageModal'; import EmptyTrashModal from '../EmptyTrashModal'; import PageDeleteModal from '../PageDeleteModal'; const TrashPageAlert = (props) => { const { t, appContainer, pageContainer } = props; const { path, isDeleted, lastUpdateUsername, updatedAt, hasChildren, isAbleToDeleteCompletely, } = pageContainer.state; const { currentUser = null } = appContainer; const [isEmptyTrashModalShown, setIsEmptyTrashModalShown] = useState(false); const [isPutbackPageModalShown, setIsPutbackPageModalShown] = useState(false); const [isPageDeleteModalShown, setIsPageDeleteModalShown] = useState(false); function openEmptyTrashModalHandler() { setIsEmptyTrashModalShown(true); } function closeEmptyTrashModalHandler() { setIsEmptyTrashModalShown(false); } function openPutbackPageModalHandler() { setIsPutbackPageModalShown(true); } function closePutbackPageModalHandler() { setIsPutbackPageModalShown(false); } function openPageDeleteModalHandler() { setIsPageDeleteModalShown(true); } function opclosePageDeleteModalHandler() { setIsPageDeleteModalShown(false); } function renderEmptyButton() { return ( ); } function renderTrashPageManagementButtons() { return ( <> ); } function renderModals() { return ( <> ); } return ( <>
This page is in the trash . {isDeleted &&
Deleted by {lastUpdateUsername} at {updatedAt}
}
{(currentUser && currentUser.admin && path === '/trash' && hasChildren) && renderEmptyButton()} {(isDeleted && currentUser) && renderTrashPageManagementButtons()}
{renderModals()} ); }; /** * Wrapper component for using unstated */ const TrashPageAlertWrapper = withUnstatedContainers(TrashPageAlert, [AppContainer, PageContainer]); TrashPageAlert.propTypes = { t: PropTypes.func.isRequired, // i18next appContainer: PropTypes.instanceOf(AppContainer).isRequired, pageContainer: PropTypes.instanceOf(PageContainer).isRequired, }; export default withTranslation()(TrashPageAlertWrapper);