Просмотр исходного кода

add update meta method in page container

yuto-oweseek 4 лет назад
Родитель
Сommit
c169994563

+ 26 - 1
packages/app/src/client/services/PageContainer.js

@@ -406,7 +406,6 @@ export default class PageContainer extends Container {
     if (pageEditor != null) {
       if (editorMode !== 'edit') {
         pageEditor.updateEditorValue(newState.markdown);
-        // mark
       }
     }
     // PageEditorByHackmd component
@@ -422,6 +421,32 @@ export default class PageContainer extends Container {
     $('input[name="revision_id"]').val(newState.revisionId);
   }
 
+  /**
+   * update page meta data
+   * @param {object} page Page instance
+   * @param {object} revision Revision instance
+   * @param {Array[Tag]} tags Array of Tag
+   */
+  updatePageMetaData(page, revision, tags) {
+
+    const newState = {
+      revisionId: revision._id,
+      revisionCreatedAt: new Date(revision.createdAt).getTime() / 1000,
+      remoteRevisionId: revision._id,
+      revisionAuthor: revision.author,
+      revisionIdHackmdSynced: page.revisionHackmdSynced,
+      hasDraftOnHackmd: page.hasDraftOnHackmd,
+      updatedAt: page.updatedAt,
+    };
+    if (tags != null) {
+      newState.tags = tags;
+    }
+    this.setState(newState);
+
+    $('input[name="revision_id"]').val(newState.revisionId);
+  }
+
+
   /**
    * Save page
    * @param {string} markdown

+ 2 - 2
packages/app/src/components/Page/TagLabels.jsx

@@ -59,8 +59,8 @@ class TagLabels extends React.Component {
         pageId, tags: newTags, revisionId,
       });
       editorContainer.setState({ tags });
-      pageContainer.updateStateAfterSave(savedPage, tags, savedPage.revision);
-      // if drafted
+      pageContainer.updatePageMetaData(savedPage, savedPage.revision, tags);
+
       const pageEditor = appContainer.getComponentInstance('PageEditor');
       const markDown = pageEditor.getMarkdown();
       pageContainer.setState({ markDown });