Просмотр исходного кода

Initial value of useIsTrashPage is no longer needed

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

+ 0 - 1
packages/app/src/pages/[[...path]].page.tsx

@@ -243,7 +243,6 @@ const GrowiPage: NextPage<Props> = (props: Props) => {
   useCurrentPageId(pageId);
   useSWRxCurrentPage(undefined, pageWithMeta?.data); // store initial data
   useSWRxPageInfo(pageId, undefined, pageWithMeta?.meta); // store initial data
-  useIsTrashPage(_isTrashPage(pagePath));
   useIsUserPage(isUserPage(pagePath));
   useIsNotCreatable(props.isForbidden || !isCreatablePage(pagePath)); // TODO: need to include props.isIdentical
   useCurrentPagePath(pagePath);

+ 1 - 2
packages/app/src/pages/trash.page.tsx

@@ -10,7 +10,7 @@ import UserUISettings from '~/server/models/user-ui-settings';
 
 import { BasicLayout } from '../components/Layout/BasicLayout';
 import {
-  useCurrentUser, useIsTrashPage, useCurrentPagePath, useCurrentPathname,
+  useCurrentUser, useCurrentPagePath, useCurrentPathname,
   useIsSearchServiceConfigured, useIsSearchServiceReachable,
   useIsSearchScopeChildrenAsDefault,
 } from '../stores/context';
@@ -39,7 +39,6 @@ const TrashPage: NextPage<CommonProps> = (props: Props) => {
   useIsSearchServiceReachable(props.isSearchServiceReachable);
   useIsSearchScopeChildrenAsDefault(props.isSearchScopeChildrenAsDefault);
 
-  useIsTrashPage(true);
   useCurrentPathname('/trash');
   useCurrentPagePath('/trash');
 

+ 17 - 4
packages/app/src/stores/context.tsx

@@ -1,8 +1,8 @@
+import { pagePathUtils } from '@growi/core';
 import { HtmlElementNode } from 'rehype-toc';
 import { Key, SWRResponse } from 'swr';
 import useSWRImmutable from 'swr/immutable';
 
-
 import { SupportedActionType } from '~/interfaces/activity';
 import { EditorConfig } from '~/interfaces/editor-settings';
 // import { CustomWindow } from '~/interfaces/global';
@@ -18,6 +18,8 @@ import { useStaticSWR } from './use-static-swr';
 
 type Nullable<T> = T | null;
 
+const { isTrashPage } = pagePathUtils;
+
 
 export const useInterceptorManager = (): SWRResponse<InterceptorManager, Error> => {
   return useStaticSWR<InterceptorManager, Error>('interceptorManager', undefined, { fallbackData: new InterceptorManager() });
@@ -83,9 +85,9 @@ export const useIsUserPage = (initialData?: boolean): SWRResponse<boolean, Error
   return useStaticSWR<boolean, Error>('isUserPage', initialData, { fallbackData: false });
 };
 
-export const useIsTrashPage = (initialData?: boolean): SWRResponse<boolean, Error> => {
-  return useStaticSWR<boolean, Error>('isTrashPage', initialData, { fallbackData: false });
-};
+// export const useIsTrashPage = (initialData?: boolean): SWRResponse<boolean, Error> => {
+//   return useStaticSWR<boolean, Error>('isTrashPage', initialData, { fallbackData: false });
+// };
 
 export const useIsNotCreatable = (initialData?: boolean): SWRResponse<boolean, Error> => {
   return useStaticSWR<boolean, Error>('isNotCreatable', initialData, { fallbackData: false });
@@ -273,6 +275,17 @@ export const useIsGuestUser = (): SWRResponse<boolean, Error> => {
   );
 };
 
+export const useIsTrashPage = (): SWRResponse<boolean, Error> => {
+  const { data: currentPagePath } = useCurrentPagePath();
+
+  const result = isTrashPage(currentPagePath || '');
+
+  return useSWRImmutable(
+    ['isTrashPage', result],
+    (key: Key, isTrashPage: boolean) => isTrashPage,
+  );
+};
+
 export const useIsEditable = (): SWRResponse<boolean, Error> => {
   const { data: isGuestUser } = useIsGuestUser();
   const { data: isNotCreatable } = useIsNotCreatable();