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

set delay on useTermNumberManager

Yuki Takei 4 лет назад
Родитель
Сommit
f2f28a7bb7

+ 1 - 1
packages/app/src/components/DescendantsPageList.tsx

@@ -77,7 +77,7 @@ export const DescendantsPageListSubstance = (props: SubstanceProps): JSX.Element
   const pageDeletedHandler: OnDeletedFunction = useCallback((...args) => {
     toastSuccess(args[2] ? t('deleted_pages_completely') : t('deleted_pages'));
 
-    setTimeout(() => advancePt(), 800);
+    advancePt();
 
     if (onPagesDeleted != null) {
       onPagesDeleted(...args);

+ 5 - 3
packages/app/src/components/SearchPage/SearchResultList.tsx

@@ -7,6 +7,7 @@ import { IPageWithMeta, isIPageInfoForListing } from '~/interfaces/page';
 import { IPageSearchMeta } from '~/interfaces/search';
 import { useIsGuestUser } from '~/stores/context';
 import { useSWRxPageInfoForList } from '~/stores/page';
+import { usePageTreeTermManager } from '~/stores/page-listing';
 import { useFullTextSearchTermManager } from '~/stores/search';
 import { ForceHideMenuItems } from '../Common/Dropdown/PageItemControl';
 
@@ -35,7 +36,9 @@ const SearchResultListSubstance: ForwardRefRenderFunction<ISelectableAll, Props>
   const { data: isGuestUser } = useIsGuestUser();
   const { data: idToPageInfo } = useSWRxPageInfoForList(pageIdsWithNoSnippet);
 
-  const { advance: advanceFullTextSearchTerm } = useFullTextSearchTermManager();
+  // for mutation
+  const { advance: advancePt } = usePageTreeTermManager();
+  const { advance: advanceFts } = useFullTextSearchTermManager();
 
   const itemsRef = useRef<(ISelectable|null)[]>([]);
 
@@ -62,7 +65,6 @@ const SearchResultListSubstance: ForwardRefRenderFunction<ISelectableAll, Props>
     }
   }, [onPageSelected, pages]);
 
-
   let injectedPage;
   // inject data to list
   if (idToPageInfo != null) {
@@ -98,7 +100,7 @@ const SearchResultListSubstance: ForwardRefRenderFunction<ISelectableAll, Props>
             forceHideMenuItems={forceHideMenuItems}
             onClickItem={clickItemHandler}
             onCheckboxChanged={props.onCheckboxChanged}
-            onPageDeleted={advanceFullTextSearchTerm}
+            onPageDeleted={() => { advancePt(); advanceFts() }}
           />
         );
       })}

+ 3 - 5
packages/app/src/components/Sidebar/PageTree/ItemsTree.tsx

@@ -145,11 +145,9 @@ const ItemsTree: FC<ItemsTreeProps> = (props: ItemsTreeProps) => {
         toastSuccess(t('deleted_pages', { path }));
       }
 
-      setTimeout(() => {
-        advancePt();
-        advanceFts();
-        advanceDpl();
-      }, 800);
+      advancePt();
+      advanceFts();
+      advanceDpl();
     };
 
     openDeleteModal([pageToDelete], { onDeleted: onDeletedHandler });

+ 8 - 2
packages/app/src/stores/use-static-swr.tsx

@@ -31,6 +31,8 @@ export function useStaticSWR<Data, Error>(
 }
 
 
+const ADVANCE_DELAY_MS = 800;
+
 export type ITermNumberManagerUtil = {
   advance(): void,
 }
@@ -42,9 +44,13 @@ export const useTermNumberManager = (key: Key) : SWRResponse<number, Error> & IT
     ...swrResult,
     advance: () => {
       const { data: currentNum } = swrResult;
-      if (currentNum != null) {
-        swrResult.mutate(currentNum + 1);
+      if (currentNum == null) {
+        return;
       }
+
+      setTimeout(() => {
+        swrResult.mutate(currentNum + 1);
+      }, ADVANCE_DELAY_MS);
     },
   };
 };