|
@@ -1,5 +1,4 @@
|
|
|
-import React, { useState } from 'react';
|
|
|
|
|
-
|
|
|
|
|
|
|
+import React from 'react';
|
|
|
|
|
|
|
|
import { UserPicture } from '@growi/ui';
|
|
import { UserPicture } from '@growi/ui';
|
|
|
import PropTypes from 'prop-types';
|
|
import PropTypes from 'prop-types';
|
|
@@ -9,8 +8,8 @@ import PageContainer from '~/client/services/PageContainer';
|
|
|
import { useCurrentUpdatedAt, useShareLinkId } from '~/stores/context';
|
|
import { useCurrentUpdatedAt, useShareLinkId } from '~/stores/context';
|
|
|
import { usePageDeleteModal, usePutBackPageModal } from '~/stores/modal';
|
|
import { usePageDeleteModal, usePutBackPageModal } from '~/stores/modal';
|
|
|
import { useSWRxPageInfo } from '~/stores/page';
|
|
import { useSWRxPageInfo } from '~/stores/page';
|
|
|
|
|
+import { useIsAbleToShowTrashPageManagementButtons } from '~/stores/ui';
|
|
|
|
|
|
|
|
-import EmptyTrashModal from '../EmptyTrashModal';
|
|
|
|
|
import { withUnstatedContainers } from '../UnstatedUtils';
|
|
import { withUnstatedContainers } from '../UnstatedUtils';
|
|
|
|
|
|
|
|
const onDeletedHandler = (pathOrPathsToDelete, isRecursively, isCompletely) => {
|
|
const onDeletedHandler = (pathOrPathsToDelete, isRecursively, isCompletely) => {
|
|
@@ -27,6 +26,8 @@ const TrashPageAlert = (props) => {
|
|
|
const {
|
|
const {
|
|
|
pageId, revisionId, path, isDeleted, lastUpdateUsername, deletedUserName, deletedAt,
|
|
pageId, revisionId, path, isDeleted, lastUpdateUsername, deletedUserName, deletedAt,
|
|
|
} = pageContainer.state;
|
|
} = pageContainer.state;
|
|
|
|
|
+
|
|
|
|
|
+ const { data: isAbleToShowTrashPageManagementButtons } = useIsAbleToShowTrashPageManagementButtons();
|
|
|
const { data: shareLinkId } = useShareLinkId();
|
|
const { data: shareLinkId } = useShareLinkId();
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -37,19 +38,10 @@ const TrashPageAlert = (props) => {
|
|
|
const { data: pageInfo } = useSWRxPageInfo(pageId ?? null, shareLinkId);
|
|
const { data: pageInfo } = useSWRxPageInfo(pageId ?? null, shareLinkId);
|
|
|
|
|
|
|
|
const { data: updatedAt } = useCurrentUpdatedAt();
|
|
const { data: updatedAt } = useCurrentUpdatedAt();
|
|
|
- const [isEmptyTrashModalShown, setIsEmptyTrashModalShown] = useState(false);
|
|
|
|
|
|
|
|
|
|
const { open: openDeleteModal } = usePageDeleteModal();
|
|
const { open: openDeleteModal } = usePageDeleteModal();
|
|
|
const { open: openPutBackPageModal } = usePutBackPageModal();
|
|
const { open: openPutBackPageModal } = usePutBackPageModal();
|
|
|
|
|
|
|
|
- function openEmptyTrashModalHandler() {
|
|
|
|
|
- setIsEmptyTrashModalShown(true);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- function closeEmptyTrashModalHandler() {
|
|
|
|
|
- setIsEmptyTrashModalShown(false);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
function openPutbackPageModalHandler() {
|
|
function openPutbackPageModalHandler() {
|
|
|
const putBackedHandler = (path) => {
|
|
const putBackedHandler = (path) => {
|
|
|
window.location.reload();
|
|
window.location.reload();
|
|
@@ -69,20 +61,6 @@ const TrashPageAlert = (props) => {
|
|
|
openDeleteModal([pageToDelete], { onDeleted: onDeletedHandler });
|
|
openDeleteModal([pageToDelete], { onDeleted: onDeletedHandler });
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- function renderEmptyButton() {
|
|
|
|
|
- return (
|
|
|
|
|
- <button
|
|
|
|
|
- href="#"
|
|
|
|
|
- type="button"
|
|
|
|
|
- className="btn btn-danger rounded-pill btn-sm ml-auto"
|
|
|
|
|
- data-target="#emptyTrash"
|
|
|
|
|
- onClick={openEmptyTrashModalHandler}
|
|
|
|
|
- >
|
|
|
|
|
- <i className="icon-trash" aria-hidden="true"></i>{ t('modal_empty.empty_the_trash') }
|
|
|
|
|
- </button>
|
|
|
|
|
- );
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
function renderTrashPageManagementButtons() {
|
|
function renderTrashPageManagementButtons() {
|
|
|
return (
|
|
return (
|
|
|
<>
|
|
<>
|
|
@@ -106,17 +84,6 @@ const TrashPageAlert = (props) => {
|
|
|
);
|
|
);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- function renderModals() {
|
|
|
|
|
- return (
|
|
|
|
|
- <>
|
|
|
|
|
- <EmptyTrashModal
|
|
|
|
|
- isOpen={isEmptyTrashModalShown}
|
|
|
|
|
- onClose={closeEmptyTrashModalHandler}
|
|
|
|
|
- />
|
|
|
|
|
- </>
|
|
|
|
|
- );
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
return (
|
|
return (
|
|
|
<>
|
|
<>
|
|
|
<div className="alert alert-warning py-3 pl-4 d-flex flex-column flex-lg-row">
|
|
<div className="alert alert-warning py-3 pl-4 d-flex flex-column flex-lg-row">
|
|
@@ -133,11 +100,9 @@ const TrashPageAlert = (props) => {
|
|
|
)}
|
|
)}
|
|
|
</div>
|
|
</div>
|
|
|
<div className="pt-1 d-flex align-items-end align-items-lg-center">
|
|
<div className="pt-1 d-flex align-items-end align-items-lg-center">
|
|
|
- <span>{ pageContainer.isAbleToShowEmptyTrashButton && renderEmptyButton()}</span>
|
|
|
|
|
- { pageContainer.isAbleToShowTrashPageManagementButtons && renderTrashPageManagementButtons()}
|
|
|
|
|
|
|
+ { isAbleToShowTrashPageManagementButtons && renderTrashPageManagementButtons()}
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- {renderModals()}
|
|
|
|
|
</>
|
|
</>
|
|
|
);
|
|
);
|
|
|
};
|
|
};
|