arvid-e 2 месяцев назад
Родитель
Сommit
b8d7fffcf6

+ 3 - 12
apps/app/src/client/components/SearchTypeahead.tsx

@@ -25,7 +25,6 @@ import type { IFocusable } from '~/client/interfaces/focusable';
 import type { TypeaheadProps } from '~/client/interfaces/react-bootstrap-typeahead';
 import type { IPageWithSearchMeta } from '~/interfaces/search';
 import { useSWRxSearch } from '~/stores/search';
-import { useSWRxSecuritySettings } from '~/stores/security-settings';
 
 import styles from './SearchTypeahead.module.scss';
 
@@ -84,21 +83,13 @@ const SearchTypeahead: ForwardRefRenderFunction<IFocusable, Props> = (
   const [searchKeyword, setSearchKeyword] = useState('');
   const [isFocused, setFocused] = useState(false);
 
-  const { data: generalSetting } = useSWRxSecuritySettings();
-  const isHidingUserPages = generalSetting?.isHidingUserPages ?? false;
-
   const {
     data: searchResult,
     error: searchError,
     isLoading,
-  } = useSWRxSearch(
-    disableIncrementalSearch ? null : searchKeyword,
-    null,
-    {
-      limit: 10,
-    },
-    isHidingUserPages,
-  );
+  } = useSWRxSearch(disableIncrementalSearch ? null : searchKeyword, null, {
+    limit: 10,
+  });
 
   const typeaheadRef = useRef<TypeaheadRef>(null);
 

+ 0 - 5
apps/app/src/features/openai/client/components/AiAssistant/AiAssistantManagementModal/AiAssistantManagementKeywordSearch.tsx

@@ -14,7 +14,6 @@ import { ModalBody } from 'reactstrap';
 import SimpleBar from 'simplebar-react';
 
 import { useSWRxSearch } from '~/stores/search';
-import { useSWRxSecuritySettings } from '~/stores/security-settings';
 
 import type { SelectablePage } from '../../../../interfaces/selectable-page';
 import { useSelectedPages } from '../../../services/use-selected-pages';
@@ -50,9 +49,6 @@ type Props = {
 export const AiAssistantKeywordSearch = (props: Props): JSX.Element => {
   const { isActivePane, baseSelectedPages, updateBaseSelectedPages } = props;
 
-  const { data: generalSetting } = useSWRxSecuritySettings();
-  const isHidingUserPages = generalSetting?.isHidingUserPages ?? false;
-
   const [selectedSearchKeywords, setSelectedSearchKeywords] = useState<
     Array<SelectedSearchKeyword>
   >([]);
@@ -73,7 +69,6 @@ export const AiAssistantKeywordSearch = (props: Props): JSX.Element => {
       includeUserPages: true,
       includeTrashPages: false,
     },
-    isHidingUserPages,
   );
 
   // Search results will include subordinate pages by default

+ 3 - 4
apps/app/src/features/search/client/components/PrivateLegacyPages.tsx

@@ -7,6 +7,7 @@ import React, {
   useState,
 } from 'react';
 import { LoadingSpinner } from '@growi/ui/dist/components';
+import { useAtomValue } from 'jotai';
 import { useTranslation } from 'next-i18next';
 import {
   DropdownItem,
@@ -35,6 +36,7 @@ import type { PageMigrationErrorData } from '~/interfaces/websocket';
 import { SocketEventName } from '~/interfaces/websocket';
 import { useIsAdmin } from '~/states/context';
 import { useSearchKeyword, useSetSearchKeyword } from '~/states/search';
+import { isHidingUserPagesAtom } from '~/states/server-configurations';
 import { useGlobalSocket } from '~/states/socket-io';
 import type { ILegacyPrivatePage } from '~/states/ui/modal/private-legacy-pages-migration';
 import { usePrivateLegacyPagesMigrationModalActions } from '~/states/ui/modal/private-legacy-pages-migration';
@@ -43,7 +45,6 @@ import {
   useSWRxV5MigrationStatus,
 } from '~/stores/page-listing';
 import { useSWRxSearch } from '~/stores/search';
-import { useSWRxSecuritySettings } from '~/stores/security-settings';
 
 import { OperateAllControl } from './SearchPage/OperateAllControl';
 import SearchControl from './SearchPage/SearchControl';
@@ -269,8 +270,7 @@ const PrivateLegacyPages = (): JSX.Element => {
   const keyword = useSearchKeyword();
   const setSearchKeyword = useSetSearchKeyword('/_private-legacy-pages');
 
-  const { data: generalSetting } = useSWRxSecuritySettings();
-  const isHidingUserPages = generalSetting?.isHidingUserPages ?? false;
+  const isHidingUserPages = useAtomValue(isHidingUserPagesAtom);
 
   const [offset, setOffset] = useState<number>(0);
   const [limit, setLimit] = useState<number>(INITIAL_PAGING_SIZE);
@@ -299,7 +299,6 @@ const PrivateLegacyPages = (): JSX.Element => {
       includeUserPages: true,
       includeTrashPages: false,
     },
-    isHidingUserPages,
   );
 
   const { data: migrationStatus, mutate: mutateMigrationStatus } =

+ 10 - 14
apps/app/src/features/search/client/components/SearchPage/SearchPage.tsx

@@ -11,13 +11,15 @@ import type {
 } from '~/client/interfaces/selectable-all';
 import type { IFormattedSearchResult } from '~/interfaces/search';
 import { useSearchKeyword, useSetSearchKeyword } from '~/states/search';
-import { showPageLimitationLAtom } from '~/states/server-configurations';
+import {
+  isHidingUserPagesAtom,
+  showPageLimitationLAtom,
+} from '~/states/server-configurations';
 import {
   type ISearchConditions,
   type ISearchConfigurations,
   useSWRxSearch,
 } from '~/stores/search';
-import { useSWRxSecuritySettings } from '~/stores/security-settings';
 
 import { OperateAllControl } from './OperateAllControl';
 import SearchControl from './SearchControl';
@@ -107,8 +109,7 @@ export const SearchPage = (): JSX.Element => {
   const keyword = useSearchKeyword();
   const setSearchKeyword = useSetSearchKeyword();
 
-  const { data: generalSetting } = useSWRxSecuritySettings();
-  const isHidingUserPages = generalSetting?.isHidingUserPages ?? false;
+  const isHidingUserPages = useAtomValue(isHidingUserPagesAtom);
 
   const [offset, setOffset] = useState<number>(0);
   const [limit, setLimit] = useState<number>(
@@ -127,16 +128,11 @@ export const SearchPage = (): JSX.Element => {
     (ISelectableAll & IReturnSelectedPageIds) | null
   >(null);
 
-  const { data, conditions, mutate } = useSWRxSearch(
-    keyword ?? '',
-    null,
-    {
-      ...configurationsByControl,
-      offset,
-      limit,
-    },
-    isHidingUserPages,
-  );
+  const { data, conditions, mutate } = useSWRxSearch(keyword ?? '', null, {
+    ...configurationsByControl,
+    offset,
+    limit,
+  });
 
   const searchInvokedHandler = useCallback(
     (newKeyword: string, newConfigurations: Partial<ISearchConfigurations>) => {

+ 0 - 5
apps/app/src/features/search/client/components/SearchResultMenuItem.tsx

@@ -3,7 +3,6 @@ import { PagePathLabel, UserPicture } from '@growi/ui/dist/components';
 import { useDebounce } from 'usehooks-ts';
 
 import { useSWRxSearch } from '~/stores/search';
-import { useSWRxSecuritySettings } from '~/stores/security-settings';
 
 import type { GetItemProps } from '../interfaces/downshift';
 import { SearchMenuItem } from './SearchMenuItem';
@@ -16,9 +15,6 @@ type Props = {
 export const SearchResultMenuItem = (props: Props): JSX.Element => {
   const { activeIndex, searchKeyword, getItemProps } = props;
 
-  const { data: generalSetting } = useSWRxSecuritySettings();
-  const isHidingUserPages = generalSetting?.isHidingUserPages ?? false;
-
   const debouncedKeyword = useDebounce(searchKeyword, 500);
 
   const isEmptyKeyword = searchKeyword.trim().length === 0;
@@ -27,7 +23,6 @@ export const SearchResultMenuItem = (props: Props): JSX.Element => {
     isEmptyKeyword ? null : debouncedKeyword,
     null,
     { limit: 10 },
-    isHidingUserPages,
   );
 
   /**

+ 2 - 7
apps/app/src/stores/search.tsx

@@ -54,7 +54,6 @@ export const useSWRxSearch = (
   keyword: string | null,
   nqName: string | null,
   configurations: ISearchConfigurations,
-  isHidingUserPagesForced: boolean,
 ): SWRResponse<IFormattedSearchResult, Error> & {
   conditions: ISearchConditions;
 } => {
@@ -67,9 +66,7 @@ export const useSWRxSearch = (
     sort: sort ?? SORT_AXIS.RELATION_SCORE,
     order: order ?? SORT_ORDER.DESC,
     includeTrashPages: includeTrashPages ?? false,
-    includeUserPages: isHidingUserPagesForced
-      ? false
-      : (includeUserPages ?? false),
+    includeUserPages: includeUserPages ?? false,
   };
   const rawQuery = createSearchQuery(
     keyword ?? '',
@@ -80,9 +77,7 @@ export const useSWRxSearch = (
   const isKeywordValid = keyword != null && keyword.length > 0;
 
   const swrResult = useSWR(
-    isKeywordValid
-      ? ['/search', keyword, fixedConfigurations, isHidingUserPagesForced]
-      : null,
+    isKeywordValid ? ['/search', keyword, fixedConfigurations] : null,
     ([endpoint, , fixedConfigurations]) => {
       const { limit, offset, sort, order } = fixedConfigurations;
 

+ 0 - 11
apps/app/src/stores/security-settings.ts

@@ -1,11 +0,0 @@
-import useSWR from 'swr';
-
-import { apiv3Get } from '~/client/util/apiv3-client';
-
-export const useSWRxSecuritySettings = () => {
-  return useSWR('/security-setting', () =>
-    apiv3Get('/security-setting').then((res) => {
-      return res.data.securityParams.generalSetting;
-    }),
-  );
-};