Shun Miyazawa 3 лет назад
Родитель
Сommit
ba774b8cd1

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

@@ -3,6 +3,8 @@ import React, { memo } from 'react';
 import Link from 'next/link';
 import urljoin from 'url-join';
 
+import { useIsTrashPage } from '~/stores/context';
+
 import LinkedPagePath from '../models/linked-page-path';
 
 
@@ -21,13 +23,16 @@ const PagePathHierarchicalLink = memo((props: PagePathHierarchicalLinkProps): JS
   const {
     linkedPagePath, linkedPagePathByHtml, basePath, isInTrash,
   } = props;
+
+  const { data: isTrashPage } = useIsTrashPage();
+
   // render root element
   if (linkedPagePath.isRoot) {
     if (basePath != null) {
       return <></>;
     }
 
-    return isInTrash
+    return isTrashPage || isInTrash
       ? (
         <>
           <span className="path-segment">

+ 3 - 4
packages/app/src/components/PagePathNav.tsx

@@ -3,7 +3,7 @@ import React, { FC } from 'react';
 import { DevidedPagePath } from '@growi/core';
 import dynamic from 'next/dynamic';
 
-import { useIsNotFound, useIsTrashPage } from '~/stores/context';
+import { useIsNotFound } from '~/stores/context';
 
 import LinkedPagePath from '../models/linked-page-path';
 
@@ -26,7 +26,6 @@ const PagePathNav: FC<Props> = (props: Props) => {
   const dPagePath = new DevidedPagePath(pagePath, false, true);
 
   const { data: isNotFound } = useIsNotFound();
-  const { data: isTrashPage } = useIsTrashPage();
 
   let formerLink;
   let latterLink;
@@ -34,14 +33,14 @@ const PagePathNav: FC<Props> = (props: Props) => {
   // one line
   if (dPagePath.isRoot || dPagePath.isFormerRoot || isSingleLineMode) {
     const linkedPagePath = new LinkedPagePath(pagePath);
-    latterLink = <PagePathHierarchicalLink linkedPagePath={linkedPagePath} isInTrash={isTrashPage} />;
+    latterLink = <PagePathHierarchicalLink linkedPagePath={linkedPagePath} />;
   }
   // two line
   else {
     const linkedPagePathFormer = new LinkedPagePath(dPagePath.former);
     const linkedPagePathLatter = new LinkedPagePath(dPagePath.latter);
     formerLink = <PagePathHierarchicalLink linkedPagePath={linkedPagePathFormer} />;
-    latterLink = <PagePathHierarchicalLink linkedPagePath={linkedPagePathLatter} basePath={dPagePath.former} isInTrash={isTrashPage} />;
+    latterLink = <PagePathHierarchicalLink linkedPagePath={linkedPagePathLatter} basePath={dPagePath.former} />;
   }
 
   const copyDropdownId = `copydropdown${isCompactMode ? '-subnav-compact' : ''}-${pageId}`;

+ 1 - 1
packages/app/src/stores/context.tsx

@@ -277,7 +277,7 @@ export const useIsTrashPage = (): SWRResponse<boolean, Error> => {
   const result = isTrashPage(currentPagePath || '');
 
   return useSWRImmutable(
-    ['isTrashPage', result],
+    currentPagePath != null ? ['isTrashPage', result] : null,
     (key: Key, isTrashPage: boolean) => isTrashPage,
   );
 };