import React, { useState } from 'react'; import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; import { UserPicture } from '@growi/ui'; import { withUnstatedContainers } from '../UnstatedUtils'; import AppContainer from '~/client/services/AppContainer'; import PageContainer from '~/client/services/PageContainer'; import PutbackPageModal from '../PutbackPageModal'; import EmptyTrashModal from '../EmptyTrashModal'; import PageDeleteModal from '../PageDeleteModal'; const TrashPageAlert = (props) => { const { t, pageContainer } = props; const { path, isDeleted, lastUpdateUsername, updatedAt, deletedUserName, deletedAt, isAbleToDeleteCompletely, } = pageContainer.state; 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 {deletedUserName || lastUpdateUsername} at {deletedAt || updatedAt} )}
{ pageContainer.isAbleToShowEmptyTrashButton && renderEmptyButton()} { pageContainer.isAbleToShowTrashPageManagementButtons && 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);