Преглед изворни кода

imprv saveAndOverwriteScopesOfDescendants

kaori пре 3 година
родитељ
комит
8633699f82

+ 0 - 4
packages/app/src/client/services/page-operation.ts

@@ -141,10 +141,6 @@ export const saveAndReload = async(optionsToSave: OptionsToSave, pageInfo: PageI
     throw new Error(msg);
   }
 
-  // if (editorMode == null) {
-  //   logger.warn('\'saveAndReload\' requires the \'editorMode\' param');
-  //   return;
-  // }
 
   const { pageId, path, revisionId } = pageInfo;
   // const { pageId, path } = this.state;

+ 30 - 3
packages/app/src/components/PageEditor.tsx

@@ -342,7 +342,12 @@ const PageEditor = (props: Props): JSX.Element => {
   }, []);
 
 
-  const saveAndReloadHandler = useCallback(async() => {
+  const saveAndReloadHandler = useCallback(async(opts?) => {
+    if (editorMode !== EditorMode.Editor) {
+      return;
+    }
+
+    console.log({ opts });
     const grant = grantData?.grant;
     const grantedGroup = grantData?.grantedGroup;
 
@@ -350,9 +355,31 @@ const PageEditor = (props: Props): JSX.Element => {
       return;
     }
 
-    const optionsToSave = getOptionsToSave(isSlackEnabled, slackChannels, grant || 1, grantedGroup?.id, grantedGroup?.name, pageTags || []);
+    let optionsToSave;
+
+    const currentOptionsToSave = getOptionsToSave(isSlackEnabled, slackChannels, grant || 1, grantedGroup?.id, grantedGroup?.name, pageTags || []);
+
+    if (opts != null) {
+      optionsToSave = Object.assign(currentOptionsToSave, {
+        ...opts,
+      });
+    }
+    else {
+      optionsToSave = currentOptionsToSave;
+    }
+
     await saveAndReload(optionsToSave, { pageId, path: currentPagePath, revisionId: currentPage?.revision._id }, markdown);
-  }, [currentPage?.revision._id, currentPagePath, grantData, isSlackEnabled, markdown, pageId, pageTags, slackChannels]);
+  }, [currentPage?.revision._id,
+      currentPagePath,
+      editorMode,
+      grantData?.grant,
+      grantData?.grantedGroup,
+      isSlackEnabled,
+      markdown,
+      pageId,
+      pageTags,
+      slackChannels,
+  ]);
 
   // set handler to save and reload Page
   useEffect(() => {

+ 5 - 4
packages/app/src/components/SavePageControls.tsx

@@ -103,10 +103,11 @@ export const SavePageControls = (props: Props): JSX.Element | null => {
     // disable unsaved warning
     mutateIsEnabledUnsavedWarning(false);
     // save
-    const currentOptionsToSave = getOptionsToSave(isSlackEnabled, slackChannels, grant, grantedGroup?.id, grantedGroup?.name, pageTags || []);
-    const optionsToSave = Object.assign(currentOptionsToSave, {
-      overwriteScopesOfDescendants: true,
-    });
+    // const currentOptionsToSave = getOptionsToSave(isSlackEnabled, slackChannels, grant, grantedGroup?.id, grantedGroup?.name, pageTags || []);
+    // const optionsToSave = Object.assign(currentOptionsToSave, {
+    //   overwriteScopesOfDescendants: true,
+    // });
+    (window as CustomWindow).globalEmitter.emit('saveAndReload', { overwriteScopesOfDescendants: true });
     // pageContainer.saveAndReload(optionsToSave, this.props.editorMode);
   };