import React, { useState, useEffect, useCallback } 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 EmptyTrashModal from '../EmptyTrashModal';
import { useCurrentUpdatedAt, useShareLinkId } from '~/stores/context';
import { usePageDeleteModal, usePutBackPageMOdal } from '~/stores/modal';
import { useSWRxPageInfo } from '~/stores/page';
const TrashPageAlert = (props) => {
const { t, pageContainer } = props;
const {
pageId, revisionId, path, isDeleted, lastUpdateUsername, deletedUserName, deletedAt,
} = pageContainer.state;
const { data: shareLinkId } = useShareLinkId();
/*
* TODO: Do not use useSWRxPageInfo on this component
* Ideal: use useSWRxPageInfo on TrashPage after applying Next.js
* Reference: https://github.com/weseek/growi/pull/5359#discussion_r808381329
*/
const { data: pageInfo } = useSWRxPageInfo(pageId ?? null, shareLinkId);
const { data: updatedAt } = useCurrentUpdatedAt();
const [isEmptyTrashModalShown, setIsEmptyTrashModalShown] = useState(false);
const [isAbleToDeleteCompletely, setIsAbleToDeleteCompletely] = useState(false);
useEffect(() => {
if (pageInfo != null) {
setIsAbleToDeleteCompletely(pageInfo.isAbleToDeleteCompletely);
}
}, [pageInfo]);
const { open: openDeleteModal } = usePageDeleteModal();
const { open: openPutBackPageModal } = usePutBackPageMOdal();
function openEmptyTrashModalHandler() {
setIsEmptyTrashModalShown(true);
}
function closeEmptyTrashModalHandler() {
setIsEmptyTrashModalShown(false);
}
function openPutbackPageModalHandler() {
openPutBackPageModal(pageId, path);
}
const onDeletedHandler = useCallback((pathOrPathsToDelete, isRecursively, isCompletely) => {
if (typeof pathOrPathsToDelete !== 'string') {
return;
}
const path = pathOrPathsToDelete;
window.location.href = path;
}, []);
function openPageDeleteModalHandler() {
const pageToDelete = {
pageId,
revisionId,
path,
};
const isDeleteCompletelyModal = true;
openDeleteModal([pageToDelete], isAbleToDeleteCompletely, onDeletedHandler, isDeleteCompletelyModal);
}
function renderEmptyButton() {
return (
);
}
function renderTrashPageManagementButtons() {
return (
<>
>
);
}
function renderModals() {
return (
<>