2
0
Эх сурвалжийг харах

Merge pull request #5460 from weseek/imprv/hide-rename-menuitem-in-trash

imprv: Hide rename menu item in /trash
Yuki Takei 4 жил өмнө
parent
commit
30044de82c

+ 10 - 2
packages/app/src/components/DescendantsPageList.tsx

@@ -8,10 +8,11 @@ import {
 } from '~/interfaces/page';
 } from '~/interfaces/page';
 import { IPagingResult } from '~/interfaces/paging-result';
 import { IPagingResult } from '~/interfaces/paging-result';
 import { OnDeletedFunction } from '~/interfaces/ui';
 import { OnDeletedFunction } from '~/interfaces/ui';
-import { useIsGuestUser, useIsSharedUser } from '~/stores/context';
+import { useIsGuestUser, useIsSharedUser, useIsTrashPage } from '~/stores/context';
 
 
 import { useSWRxDescendantsPageListForCurrrentPath, useSWRxPageInfoForList, useSWRxPageList } from '~/stores/page';
 import { useSWRxDescendantsPageListForCurrrentPath, useSWRxPageInfoForList, useSWRxPageList } from '~/stores/page';
 import { usePageTreeTermManager } from '~/stores/page-listing';
 import { usePageTreeTermManager } from '~/stores/page-listing';
+import { ForceHideMenuItems, MenuItemType } from './Common/Dropdown/PageItemControl';
 
 
 import PageList from './PageList/PageList';
 import PageList from './PageList/PageList';
 import PaginationWrapper from './PaginationWrapper';
 import PaginationWrapper from './PaginationWrapper';
@@ -21,6 +22,7 @@ type SubstanceProps = {
   pagingResult: IPagingResult<IPageHasId> | undefined,
   pagingResult: IPagingResult<IPageHasId> | undefined,
   activePage: number,
   activePage: number,
   setActivePage: (activePage: number) => void,
   setActivePage: (activePage: number) => void,
+  forceHideMenuItems?: ForceHideMenuItems,
   onPagesDeleted?: OnDeletedFunction,
   onPagesDeleted?: OnDeletedFunction,
 }
 }
 
 
@@ -33,7 +35,7 @@ export const DescendantsPageListSubstance = (props: SubstanceProps): JSX.Element
   const { t } = useTranslation();
   const { t } = useTranslation();
 
 
   const {
   const {
-    pagingResult, activePage, setActivePage, onPagesDeleted,
+    pagingResult, activePage, setActivePage, forceHideMenuItems, onPagesDeleted,
   } = props;
   } = props;
 
 
   const { data: isGuestUser } = useIsGuestUser();
   const { data: isGuestUser } = useIsGuestUser();
@@ -85,6 +87,7 @@ export const DescendantsPageListSubstance = (props: SubstanceProps): JSX.Element
       <PageList
       <PageList
         pages={pageWithMetas}
         pages={pageWithMetas}
         isEnableActions={!isGuestUser}
         isEnableActions={!isGuestUser}
+        forceHideMenuItems={forceHideMenuItems}
         onPagesDeleted={pageDeletedHandler}
         onPagesDeleted={pageDeletedHandler}
       />
       />
 
 
@@ -137,6 +140,8 @@ export const DescendantsPageList = (props: Props): JSX.Element => {
 export const DescendantsPageListForCurrentPath = (): JSX.Element => {
 export const DescendantsPageListForCurrentPath = (): JSX.Element => {
 
 
   const [activePage, setActivePage] = useState(1);
   const [activePage, setActivePage] = useState(1);
+
+  const { data: isTrashPage } = useIsTrashPage();
   const { data: pagingResult, error, mutate } = useSWRxDescendantsPageListForCurrrentPath(activePage);
   const { data: pagingResult, error, mutate } = useSWRxDescendantsPageListForCurrrentPath(activePage);
 
 
   if (error != null) {
   if (error != null) {
@@ -147,11 +152,14 @@ export const DescendantsPageListForCurrentPath = (): JSX.Element => {
     );
     );
   }
   }
 
 
+  const forceHideMenuItems = isTrashPage ? [MenuItemType.RENAME] : undefined;
+
   return (
   return (
     <DescendantsPageListSubstance
     <DescendantsPageListSubstance
       pagingResult={pagingResult}
       pagingResult={pagingResult}
       activePage={activePage}
       activePage={activePage}
       setActivePage={setActivePage}
       setActivePage={setActivePage}
+      forceHideMenuItems={forceHideMenuItems}
       onPagesDeleted={() => mutate()}
       onPagesDeleted={() => mutate()}
     />
     />
   );
   );

+ 6 - 1
packages/app/src/components/PageList/PageList.tsx

@@ -3,6 +3,7 @@ import { useTranslation } from 'react-i18next';
 
 
 import { IPageWithMeta } from '~/interfaces/page';
 import { IPageWithMeta } from '~/interfaces/page';
 import { OnDeletedFunction } from '~/interfaces/ui';
 import { OnDeletedFunction } from '~/interfaces/ui';
+import { ForceHideMenuItems } from '../Common/Dropdown/PageItemControl';
 
 
 import { PageListItemL } from './PageListItemL';
 import { PageListItemL } from './PageListItemL';
 
 
@@ -10,12 +11,15 @@ import { PageListItemL } from './PageListItemL';
 type Props = {
 type Props = {
   pages: IPageWithMeta[],
   pages: IPageWithMeta[],
   isEnableActions?: boolean,
   isEnableActions?: boolean,
+  forceHideMenuItems?: ForceHideMenuItems,
   onPagesDeleted?: OnDeletedFunction,
   onPagesDeleted?: OnDeletedFunction,
 }
 }
 
 
 const PageList = (props: Props): JSX.Element => {
 const PageList = (props: Props): JSX.Element => {
   const { t } = useTranslation();
   const { t } = useTranslation();
-  const { pages, isEnableActions, onPagesDeleted } = props;
+  const {
+    pages, isEnableActions, forceHideMenuItems, onPagesDeleted,
+  } = props;
 
 
   if (pages == null) {
   if (pages == null) {
     return (
     return (
@@ -32,6 +36,7 @@ const PageList = (props: Props): JSX.Element => {
       key={page.data._id}
       key={page.data._id}
       page={page}
       page={page}
       isEnableActions={isEnableActions}
       isEnableActions={isEnableActions}
+      forceHideMenuItems={forceHideMenuItems}
       onPageDeleted={onPagesDeleted}
       onPageDeleted={onPagesDeleted}
     />
     />
   ));
   ));