Yuki Takei 7 месяцев назад
Родитель
Сommit
1f2db807cf
20 измененных файлов с 42 добавлено и 42 удалено
  1. 1 1
      apps/app/src/client/components/Admin/Users/RevokeAdminButton.tsx
  2. 1 1
      apps/app/src/client/components/Admin/Users/RevokeAdminMenuItem.tsx
  3. 1 1
      apps/app/src/client/components/Admin/Users/StatusSuspendMenuItem.tsx
  4. 3 3
      apps/app/src/client/components/DescendantsPageList.tsx
  5. 1 1
      apps/app/src/client/components/DescendantsPageListModal.tsx
  6. 1 1
      apps/app/src/client/components/NotAvailableForGuest.tsx
  7. 1 1
      apps/app/src/client/components/Page/PageContentsUtilities.tsx
  8. 4 4
      apps/app/src/client/components/PageAccessoriesModal/PageAttachment.tsx
  9. 3 3
      apps/app/src/client/components/PageSelectModal/PageSelectModal.tsx
  10. 1 1
      apps/app/src/client/components/PageTimeline.tsx
  11. 2 2
      apps/app/src/client/components/SearchPage/SearchResultList.tsx
  12. 1 1
      apps/app/src/client/components/TableOfContents.tsx
  13. 1 1
      apps/app/src/client/components/UsersHomepageFooter.tsx
  14. 1 1
      apps/app/src/client/services/create-page/use-create-page.tsx
  15. 1 1
      apps/app/src/client/services/create-page/use-create-template-page.ts
  16. 6 6
      apps/app/src/client/services/side-effects/drawio-modal-launcher-for-view.ts
  17. 6 6
      apps/app/src/client/services/side-effects/handsontable-modal-launcher-for-view.ts
  18. 4 4
      apps/app/src/client/services/side-effects/page-updated.ts
  19. 1 1
      apps/app/src/client/services/update-page/conflict.tsx
  20. 2 2
      apps/app/src/components/PageView/PageAlerts/OldRevisionAlert.tsx

+ 1 - 1
apps/app/src/client/components/Admin/Users/RevokeAdminButton.tsx

@@ -17,7 +17,7 @@ type RevokeAdminButtonProps = {
 const RevokeAdminButton = (props: RevokeAdminButtonProps): JSX.Element => {
 
   const { t } = useTranslation('admin');
-  const [currentUser] = useCurrentUser();
+  const currentUser = useCurrentUser(); // hook returns single value now
   const { adminUsersContainer, user } = props;
 
   const onClickRevokeAdminBtnHandler = useCallback(async() => {

+ 1 - 1
apps/app/src/client/components/Admin/Users/RevokeAdminMenuItem.tsx

@@ -33,7 +33,7 @@ const RevokeAdminMenuItem = (props: Props): JSX.Element => {
 
   const { adminUsersContainer, user } = props;
 
-  const [currentUser] = useCurrentUser();
+  const currentUser = useCurrentUser();
 
   const clickRevokeAdminBtnHandler = useCallback(async() => {
     try {

+ 1 - 1
apps/app/src/client/components/Admin/Users/StatusSuspendMenuItem.tsx

@@ -32,7 +32,7 @@ const StatusSuspendMenuItem = (props: Props): JSX.Element => {
 
   const { adminUsersContainer, user } = props;
 
-  const [currentUser] = useCurrentUser();
+  const currentUser = useCurrentUser(); // custom hook now returns single value
 
   const clickDeactiveBtnHandler = useCallback(async() => {
     try {

+ 3 - 3
apps/app/src/client/components/DescendantsPageList.tsx

@@ -42,8 +42,8 @@ const DescendantsPageListSubstance = (props: SubstanceProps): JSX.Element => {
     pagingResult, activePage, setActivePage, forceHideMenuItems, onPagesDeleted, onPagePutBacked,
   } = props;
 
-  const [isGuestUser] = useIsGuestUser();
-  const [isReadOnlyUser] = useIsReadOnlyUser();
+  const isGuestUser = useIsGuestUser();
+  const isReadOnlyUser = useIsReadOnlyUser();
 
   const pageIds = pagingResult?.items?.map(page => page._id);
   const { injectTo } = useSWRxPageInfoForList(pageIds, null, true, true);
@@ -133,7 +133,7 @@ export const DescendantsPageList = (props: DescendantsPageListProps): JSX.Elemen
 
   const [activePage, setActivePage] = useState(1);
 
-  const [isSharedUser] = useIsSharedUser();
+  const isSharedUser = useIsSharedUser();
 
   const { data: pagingResult, error, mutate } = useSWRxPageList(isSharedUser ? null : path, activePage, limit);
 

+ 1 - 1
apps/app/src/client/components/DescendantsPageListModal.tsx

@@ -31,7 +31,7 @@ export const DescendantsPageListModal = (): JSX.Element => {
   const [activeTab, setActiveTab] = useState('pagelist');
   const [isWindowExpanded, setIsWindowExpanded] = useState(false);
 
-  const [isSharedUser] = useIsSharedUser();
+  const isSharedUser = useIsSharedUser();
 
   const { data: status, close } = useDescendantsPageListModal();
 

+ 1 - 1
apps/app/src/client/components/NotAvailableForGuest.tsx

@@ -12,7 +12,7 @@ type NotAvailableForGuestProps = {
 
 export const NotAvailableForGuest = React.memo(({ children }: NotAvailableForGuestProps): JSX.Element => {
   const { t } = useTranslation();
-  const [isGuestUser] = useIsGuestUser();
+  const isGuestUser = useIsGuestUser();
 
   const isDisabled = !!isGuestUser;
   const title = t('Not available for guest');

+ 1 - 1
apps/app/src/client/components/Page/PageContentsUtilities.tsx

@@ -11,7 +11,7 @@ import { useCurrentPageId } from '~/states/page';
 export const PageContentsUtilities = (): null => {
   const { t } = useTranslation();
 
-  const [pageId] = useCurrentPageId();
+  const pageId = useCurrentPageId();
   const updateStateAfterSave = useUpdateStateAfterSave(pageId);
 
   useHandsontableModalLauncherForView({

+ 4 - 4
apps/app/src/client/components/PageAccessoriesModal/PageAttachment.tsx

@@ -20,11 +20,11 @@ const checkIfFileInUse = (markdown: string, attachment): boolean => {
 
 const PageAttachment = (): JSX.Element => {
 
-  const [pageId] = useCurrentPageId();
-  const [currentPage] = useCurrentPageData();
+  const pageId = useCurrentPageId();
+  const currentPage = useCurrentPageData();
 
-  const [isGuestUser] = useIsGuestUser();
-  const [isReadOnlyUser] = useIsReadOnlyUser();
+  const isGuestUser = useIsGuestUser();
+  const isReadOnlyUser = useIsReadOnlyUser();
 
   const isPageAttachmentDisabled = !!isGuestUser || !!isReadOnlyUser;
 

+ 3 - 3
apps/app/src/client/components/PageSelectModal/PageSelectModal.tsx

@@ -33,9 +33,9 @@ const PageSelectModalSubstance: FC = () => {
 
   const { t } = useTranslation();
 
-  const [isGuestUser] = useIsGuestUser();
-  const [isReadOnlyUser] = useIsReadOnlyUser();
-  const [currentPage] = useCurrentPageData();
+  const isGuestUser = useIsGuestUser();
+  const isReadOnlyUser = useIsReadOnlyUser();
+  const currentPage = useCurrentPageData();
   const { data: pageSelectModalData } = usePageSelectModal();
 
   const isHierarchicalSelectionMode = pageSelectModalData?.opts?.isHierarchicalSelectionMode ?? false;

+ 1 - 1
apps/app/src/client/components/PageTimeline.tsx

@@ -46,7 +46,7 @@ export const PageTimeline = (): JSX.Element => {
 
   const PER_PAGE = 3;
   const { t } = useTranslation();
-  const [currentPagePath] = useCurrentPagePath();
+  const currentPagePath = useCurrentPagePath();
 
   const swrInfinitexPageTimeline = useSWRINFxPageTimeline(currentPagePath ?? undefined, PER_PAGE);
   const { data } = swrInfinitexPageTimeline;

+ 2 - 2
apps/app/src/client/components/SearchPage/SearchResultList.tsx

@@ -39,8 +39,8 @@ const SearchResultListSubstance: ForwardRefRenderFunction<ISelectableAll, Props>
     .filter(page => (page.meta?.elasticSearchResult?.snippet?.length ?? 0) === 0)
     .map(page => page.data._id);
 
-  const [isGuestUser] = useIsGuestUser();
-  const [isReadOnlyUser] = useIsReadOnlyUser();
+  const isGuestUser = useIsGuestUser();
+  const isReadOnlyUser = useIsReadOnlyUser();
   const { data: idToPageInfo } = useSWRxPageInfoForList(pageIdsWithNoSnippet, null, true, true);
 
   const itemsRef = useRef<(ISelectable|null)[]>([]);

+ 1 - 1
apps/app/src/client/components/TableOfContents.tsx

@@ -21,7 +21,7 @@ type Props = {
 }
 
 const TableOfContents = ({ tagsElementHeight }: Props): JSX.Element => {
-  const [currentPagePath] = useCurrentPagePath();
+  const currentPagePath = useCurrentPagePath();
 
   const isUsersHomePage = currentPagePath != null && _isUsersHomepage(currentPagePath);
 

+ 1 - 1
apps/app/src/client/components/UsersHomepageFooter.tsx

@@ -17,7 +17,7 @@ export const UsersHomepageFooter = (props: UsersHomepageFooterProps): JSX.Elemen
   const { t } = useTranslation();
   const { creatorId } = props;
   const [isExpanded, setIsExpanded] = useState<boolean>(false);
-  const [currentUser] = useCurrentUser();
+  const currentUser = useCurrentUser();
   const isOperable = currentUser?._id === creatorId;
 
   return (

+ 1 - 1
apps/app/src/client/services/create-page/use-create-page.tsx

@@ -50,7 +50,7 @@ export const useCreatePage: UseCreatePage = () => {
   const router = useRouter();
   const { t } = useTranslation();
 
-  const [currentPagePath] = useCurrentPagePath();
+  const currentPagePath = useCurrentPagePath();
   const { setEditorMode } = useEditorMode();
   const { mutate: mutateIsUntitledPage } = useIsUntitledPage();
   const { open: openGrantedGroupsInheritanceSelectModal, close: closeGrantedGroupsInheritanceSelectModal } = useGrantedGroupsInheritanceSelectModal();

+ 1 - 1
apps/app/src/client/services/create-page/use-create-template-page.ts

@@ -18,7 +18,7 @@ type UseCreateTemplatePage = () => {
 
 export const useCreateTemplatePage: UseCreateTemplatePage = () => {
 
-  const [currentPagePath] = useCurrentPagePath();
+  const currentPagePath = useCurrentPagePath();
 
   const { isCreating, create } = useCreatePage();
   const isCreatable = currentPagePath != null && isCreatablePage(normalizePath(`${currentPagePath}/_template`));

+ 6 - 6
apps/app/src/client/services/side-effects/drawio-modal-launcher-for-view.ts

@@ -7,10 +7,10 @@ import type { DrawioEditByViewerProps } from '@growi/remark-drawio';
 
 import { replaceDrawioInMarkdown } from '~/client/components/Page/markdown-drawio-util-for-view';
 import { extractRemoteRevisionDataFromErrorObj, useUpdatePage } from '~/client/services/update-page';
-import { useCurrentPageData } from '~/states/page';
+import { useCurrentPageData, useSetRemoteLatestPageData } from '~/states/page';
+import type { RemoteRevisionData } from '~/states/page';
 import { useShareLinkId } from '~/states/page/hooks';
 import { useConflictDiffModal, useDrawioModal } from '~/stores/modal';
-import { type RemoteRevisionData, useSetRemoteLatestPageData } from '~/stores/remote-latest-page';
 import loggerFactory from '~/utils/logger';
 
 
@@ -28,9 +28,9 @@ export const useDrawioModalLauncherForView = (opts?: {
   onSaveError?: (error: any) => void,
 }): void => {
 
-  const [shareLinkId] = useShareLinkId();
+  const shareLinkId = useShareLinkId();
 
-  const [currentPage] = useCurrentPageData();
+  const currentPage = useCurrentPageData();
 
   const { open: openDrawioModal } = useDrawioModal();
 
@@ -38,7 +38,7 @@ export const useDrawioModalLauncherForView = (opts?: {
 
   const _updatePage = useUpdatePage();
 
-  const { setRemoteLatestPageData } = useSetRemoteLatestPageData();
+  const setRemoteLatestPageData = useSetRemoteLatestPageData();
 
   // eslint-disable-next-line max-len
   const updatePage = useCallback(async(revisionId:string, newMarkdown: string, onConflict: (conflictData: RemoteRevisionData, newMarkdown: string) => void) => {
@@ -66,7 +66,7 @@ export const useDrawioModalLauncherForView = (opts?: {
       logger.error('failed to save', error);
       opts?.onSaveError?.(error);
     }
-  }, [closeConflictDiffModal, currentPage, opts, shareLinkId]);
+  }, [_updatePage, closeConflictDiffModal, currentPage, opts, shareLinkId]);
 
   // eslint-disable-next-line max-len
   const generateResolveConflictHandler = useCallback((revisionId: string, onConflict: (conflictData: RemoteRevisionData, newMarkdown: string) => void) => {

+ 6 - 6
apps/app/src/client/services/side-effects/handsontable-modal-launcher-for-view.ts

@@ -7,10 +7,10 @@ import type { MarkdownTable } from '@growi/editor';
 
 import { getMarkdownTableFromLine, replaceMarkdownTableInMarkdown } from '~/client/components/Page/markdown-table-util-for-view';
 import { extractRemoteRevisionDataFromErrorObj, useUpdatePage } from '~/client/services/update-page';
-import { useCurrentPageData } from '~/states/page';
+import { useCurrentPageData, useSetRemoteLatestPageData } from '~/states/page';
+import type { RemoteRevisionData } from '~/states/page';
 import { useShareLinkId } from '~/states/page/hooks';
 import { useHandsontableModal, useConflictDiffModal } from '~/stores/modal';
-import { type RemoteRevisionData, useSetRemoteLatestPageData } from '~/stores/remote-latest-page';
 import loggerFactory from '~/utils/logger';
 
 
@@ -28,9 +28,9 @@ export const useHandsontableModalLauncherForView = (opts?: {
   onSaveError?: (error: any) => void,
 }): void => {
 
-  const [shareLinkId] = useShareLinkId();
+  const shareLinkId = useShareLinkId();
 
-  const [currentPage] = useCurrentPageData();
+  const currentPage = useCurrentPageData();
 
   const { open: openHandsontableModal } = useHandsontableModal();
 
@@ -38,7 +38,7 @@ export const useHandsontableModalLauncherForView = (opts?: {
 
   const _updatePage = useUpdatePage();
 
-  const { setRemoteLatestPageData } = useSetRemoteLatestPageData();
+  const setRemoteLatestPageData = useSetRemoteLatestPageData();
 
   // eslint-disable-next-line max-len
   const updatePage = useCallback(async(revisionId:string, newMarkdown: string, onConflict: (conflictData: RemoteRevisionData, newMarkdown: string) => void) => {
@@ -66,7 +66,7 @@ export const useHandsontableModalLauncherForView = (opts?: {
       logger.error('failed to save', error);
       opts?.onSaveError?.(error);
     }
-  }, [closeConflictDiffModal, currentPage, opts, shareLinkId]);
+  }, [_updatePage, closeConflictDiffModal, currentPage, opts, shareLinkId]);
 
   // eslint-disable-next-line max-len
   const generateResolveConflictHandler = useCallback((revisionId: string, onConflict: (conflictData: RemoteRevisionData, newMarkdown: string) => void) => {

+ 4 - 4
apps/app/src/client/services/side-effects/page-updated.ts

@@ -3,19 +3,19 @@ import { useCallback, useEffect } from 'react';
 import { useGlobalSocket } from '@growi/core/dist/swr';
 
 import { SocketEventName } from '~/interfaces/websocket';
-import { useCurrentPageData, useFetchCurrentPage } from '~/states/page';
+import { useCurrentPageData, useFetchCurrentPage, useSetRemoteLatestPageData } from '~/states/page';
+import type { RemoteRevisionData } from '~/states/page';
 import { useEditorMode, EditorMode } from '~/states/ui/editor';
 import { usePageStatusAlert } from '~/stores/alert';
-import { useSetRemoteLatestPageData, type RemoteRevisionData } from '~/stores/remote-latest-page';
 
 
 export const usePageUpdatedEffect = (): void => {
 
-  const { setRemoteLatestPageData } = useSetRemoteLatestPageData();
+  const setRemoteLatestPageData = useSetRemoteLatestPageData();
 
   const { data: socket } = useGlobalSocket();
   const { editorMode } = useEditorMode();
-  const [currentPage] = useCurrentPageData();
+  const currentPage = useCurrentPageData();
   const { fetchCurrentPage } = useFetchCurrentPage();
   const { open: openPageStatusAlert, close: closePageStatusAlert } = usePageStatusAlert();
 

+ 1 - 1
apps/app/src/client/services/update-page/conflict.tsx

@@ -1,7 +1,7 @@
 import type { ErrorV3 } from '@growi/core/dist/models';
 
 import { PageUpdateErrorCode } from '~/interfaces/apiv3';
-import { type RemoteRevisionData } from '~/stores/remote-latest-page';
+import type { RemoteRevisionData } from '~/states/page';
 
 export const extractRemoteRevisionDataFromErrorObj = (errors: Array<ErrorV3>): RemoteRevisionData | undefined => {
   for (const error of errors) {

+ 2 - 2
apps/app/src/components/PageView/PageAlerts/OldRevisionAlert.tsx

@@ -10,8 +10,8 @@ export const OldRevisionAlert = (): JSX.Element => {
   const router = useRouter();
   const { t } = useTranslation();
 
-  const [isOldRevisionPage] = useLatestRevision();
-  const [page] = useCurrentPageData();
+  const isOldRevisionPage = useLatestRevision();
+  const page = useCurrentPageData();
   const { fetchCurrentPage } = useFetchCurrentPage();
 
   const onClickShowLatestButton = useCallback(async() => {