Bläddra i källkod

mutate mutateSWRxFullTextSearch

kaori 4 år sedan
förälder
incheckning
2c51f18227

+ 9 - 6
packages/app/src/components/PageList/PageListItemL.tsx

@@ -33,6 +33,7 @@ type Props = {
   showPageUpdatedTime?: boolean, // whether to show page's updated time at the top-right corner of item
   onCheckboxChanged?: (isChecked: boolean, pageId: string) => void,
   onClickItem?: (pageId: string) => void,
+  onPageOperated?: () => void,
 }
 
 const PageListItemLSubstance: ForwardRefRenderFunction<ISelectable, Props> = (props: Props, ref): JSX.Element => {
@@ -41,7 +42,7 @@ const PageListItemLSubstance: ForwardRefRenderFunction<ISelectable, Props> = (pr
     page: { pageData, pageMeta }, isSelected, isEnableActions,
     forceHideMenuItems,
     showPageUpdatedTime,
-    onClickItem, onCheckboxChanged,
+    onClickItem, onCheckboxChanged, onPageOperated,
   } = props;
 
   const inputRef = useRef<HTMLInputElement>(null);
@@ -99,18 +100,20 @@ const PageListItemLSubstance: ForwardRefRenderFunction<ISelectable, Props> = (pr
   }, [openRenameModal, pageData]);
 
 
-  const onDeletedHandler: OnDeletedFunction = useCallback((pathOrPathsToDelete, isRecursively, isCompletely) => {
+  const pageDeletedHandler: OnDeletedFunction = useCallback((pathOrPathsToDelete, isRecursively, isCompletely) => {
     if (typeof pathOrPathsToDelete !== 'string') {
       return;
     }
-    window.location.reload();
-  }, []);
+    if (onPageOperated != null) {
+      onPageOperated();
+    }
+  }, [onPageOperated]);
 
   const deleteMenuItemClickHandler = useCallback((_id, pageInfo) => {
     const { _id: pageId, revision: revisionId, path } = pageData;
     const pageToDelete = { pageId, revisionId: revisionId as string, path };
-    openDeleteModal([pageToDelete], onDeletedHandler, pageInfo.isAbleToDeleteCompletely);
-  }, [onDeletedHandler, openDeleteModal, pageData]);
+    openDeleteModal([pageToDelete], pageDeletedHandler, pageInfo.isAbleToDeleteCompletely);
+  }, [pageData, openDeleteModal, pageDeletedHandler]);
 
   const styleListGroupItem = (!isDeviceSmallerThanLg && onClickItem != null) ? 'list-group-item-action' : '';
   // background color of list item changes when class "active" exists under 'list-group-item'

+ 3 - 1
packages/app/src/components/SearchPage.tsx

@@ -119,12 +119,13 @@ export const SearchPage = (props: Props): JSX.Element => {
 
   const { data: isSearchServiceReachable } = useIsSearchServiceReachable();
 
-  const { data, conditions } = useSWRxFullTextSearch(keyword, {
+  const { data, conditions, mutate: mutateSWRxFullTextSearch } = useSWRxFullTextSearch(keyword, {
     limit: INITIAL_PAGIONG_SIZE,
     ...configurationsByControl,
     ...configurationsByPagination,
   });
 
+
   const searchInvokedHandler = useCallback((_keyword: string, newConfigurations: Partial<ISearchConfigurations>) => {
     setKeyword(_keyword);
     setConfigurationsByControl(newConfigurations);
@@ -269,6 +270,7 @@ export const SearchPage = (props: Props): JSX.Element => {
       searchControl={searchControl}
       searchResultListHead={searchResultListHead}
       searchPager={searchPager}
+      onPageOperated={() => mutateSWRxFullTextSearch()}
     />
   );
 };

+ 2 - 0
packages/app/src/components/SearchPage/SearchResultList.tsx

@@ -18,6 +18,7 @@ type Props = {
   forceHideMenuItems?: ForceHideMenuItems,
   onPageSelected?: (page?: IPageWithMeta<IPageSearchMeta>) => void,
   onCheckboxChanged?: (isChecked: boolean, pageId: string) => void,
+  onPageOperated?: () => void,
 }
 
 const SearchResultListSubstance: ForwardRefRenderFunction<ISelectableAll, Props> = (props:Props, ref) => {
@@ -95,6 +96,7 @@ const SearchResultListSubstance: ForwardRefRenderFunction<ISelectableAll, Props>
             forceHideMenuItems={forceHideMenuItems}
             onClickItem={clickItemHandler}
             onCheckboxChanged={props.onCheckboxChanged}
+            onPageOperated={props.onPageOperated}
           />
         );
       })}

+ 4 - 1
packages/app/src/components/SearchPage2/SearchPageBase.tsx

@@ -28,6 +28,8 @@ type Props = {
   searchControl: React.ReactNode,
   searchResultListHead: React.ReactNode,
   searchPager: React.ReactNode,
+
+  onPageOperated?: () => void,
 }
 
 const SearchPageBaseSubstance: ForwardRefRenderFunction<ISelectableAll & IReturnSelectedPageIds, Props> = (props:Props, ref) => {
@@ -36,7 +38,7 @@ const SearchPageBaseSubstance: ForwardRefRenderFunction<ISelectableAll & IReturn
     pages,
     forceHideMenuItems,
     onSelectedPagesByCheckboxesChanged,
-    searchControl, searchResultListHead, searchPager,
+    searchControl, searchResultListHead, searchPager, onPageOperated,
   } = props;
 
   const searchResultListRef = useRef<ISelectableAll|null>(null);
@@ -175,6 +177,7 @@ const SearchPageBaseSubstance: ForwardRefRenderFunction<ISelectableAll & IReturn
                       forceHideMenuItems={forceHideMenuItems}
                       onPageSelected={page => setSelectedPageWithMeta(page)}
                       onCheckboxChanged={checkboxChangedHandler}
+                      onPageOperated={onPageOperated}
                     />
                   </div>
                 ) }