Shun Miyazawa 1 год назад
Родитель
Сommit
1f66e57df2
1 измененных файлов с 18 добавлено и 1 удалено
  1. 18 1
      apps/app/src/client/components/Common/Dropdown/PageItemControl.tsx

+ 18 - 1
apps/app/src/client/components/Common/Dropdown/PageItemControl.tsx

@@ -47,6 +47,7 @@ type CommonProps = {
   onClickDeleteMenuItem?: (pageId: string, pageInfo: IPageInfoAll | undefined) => Promise<void> | void,
   onClickRevertMenuItem?: (pageId: string) => Promise<void> | void,
   onClickPathRecoveryMenuItem?: (pageId: string) => Promise<void> | void,
+  onClickSyncLatestRevisionBodyMenuItem?: (pageId: string) => Promise<void> | void,
 
   additionalMenuItemOnTopRenderer?: React.FunctionComponent<AdditionalMenuItemsRendererProps>,
   additionalMenuItemRenderer?: React.FunctionComponent<AdditionalMenuItemsRendererProps>,
@@ -67,7 +68,7 @@ const PageItemControlDropdownMenu = React.memo((props: DropdownMenuProps): JSX.E
   const {
     pageId, isLoading, pageInfo, isEnableActions, isReadOnlyUser, forceHideMenuItems, operationProcessData,
     onClickBookmarkMenuItem, onClickRenameMenuItem, onClickDuplicateMenuItem, onClickDeleteMenuItem,
-    onClickRevertMenuItem, onClickPathRecoveryMenuItem,
+    onClickRevertMenuItem, onClickPathRecoveryMenuItem, onClickSyncLatestRevisionBodyMenuItem,
     additionalMenuItemOnTopRenderer: AdditionalMenuItemsOnTop,
     additionalMenuItemRenderer: AdditionalMenuItems,
     isInstantRename, alignEnd,
@@ -108,6 +109,13 @@ const PageItemControlDropdownMenu = React.memo((props: DropdownMenuProps): JSX.E
     await onClickRevertMenuItem(pageId);
   }, [onClickRevertMenuItem, pageId]);
 
+  const syncLatestRevisionBodyHandler = useCallback(async() => {
+    if (onClickSyncLatestRevisionBodyMenuItem == null) {
+      return;
+    }
+    await onClickSyncLatestRevisionBodyMenuItem(pageId);
+  }, [onClickSyncLatestRevisionBodyMenuItem, pageId]);
+
 
   // eslint-disable-next-line react-hooks/rules-of-hooks
   const deleteItemClickedHandler = useCallback(async() => {
@@ -211,6 +219,15 @@ const PageItemControlDropdownMenu = React.memo((props: DropdownMenuProps): JSX.E
           </DropdownItem>
         ) }
 
+        {/* SyncLatestRevisionBody */}
+        <DropdownItem
+          onClick={syncLatestRevisionBodyHandler}
+          className="grw-page-control-dropdown-item"
+        >
+          <span className="material-symbols-outlined me-1 grw-page-control-dropdown-icon">sync</span>
+          {t('SyncLatestRevisionBody')}
+        </DropdownItem>
+
         { AdditionalMenuItems && (
           <>
             { showDeviderBeforeAdditionalMenuItems && <DropdownItem divider /> }