浏览代码

apply unstated containers to PageEditorByHackmd

Yuki Takei 6 年之前
父节点
当前提交
af23d2deac
共有 2 个文件被更改,包括 17 次插入16 次删除
  1. 9 8
      src/client/js/app.js
  2. 8 8
      src/client/js/services/PageContainer.js

+ 9 - 8
src/client/js/app.js

@@ -201,7 +201,9 @@ const errorHandler = function(error) {
 const saveWithShortcut = function(markdown) {
 const saveWithShortcut = function(markdown) {
   const editorMode = appContainer.getCrowiForJquery().getCurrentEditorMode();
   const editorMode = appContainer.getCrowiForJquery().getCurrentEditorMode();
 
 
-  let revisionId = pageRevisionId;
+  const { pageId, path } = pageContainer.state;
+  let { revisionId } = pageContainer.state;
+
   // get options
   // get options
   const options = pageContainer.getCurrentOptionsToSave();
   const options = pageContainer.getCurrentOptionsToSave();
   options.socketClientId = websocketContainer.getCocketClientId();
   options.socketClientId = websocketContainer.getCocketClientId();
@@ -210,14 +212,12 @@ const saveWithShortcut = function(markdown) {
   if (editorMode === 'hackmd') {
   if (editorMode === 'hackmd') {
     // set option to sync
     // set option to sync
     options.isSyncRevisionToHackmd = true;
     options.isSyncRevisionToHackmd = true;
-    // use revisionId of PageEditorByHackmd
-    const pageEditorByHackmd = appContainer.getComponentInstance('PageEditorByHackmd');
-    revisionId = pageEditorByHackmd.getRevisionIdHackmdSynced();
+    revisionId = pageContainer.state.revisionIdHackmdSynced;
   }
   }
 
 
   let promise;
   let promise;
   if (pageId == null) {
   if (pageId == null) {
-    promise = appContainer.createPage(pagePath, markdown, options);
+    promise = appContainer.createPage(path, markdown, options);
   }
   }
   else {
   else {
     promise = appContainer.updatePage(pageId, revisionId, markdown, options);
     promise = appContainer.updatePage(pageId, revisionId, markdown, options);
@@ -240,7 +240,8 @@ const saveWithSubmitButton = function(submitOpts) {
     return;
     return;
   }
   }
 
 
-  let revisionId = pageRevisionId;
+  const { pageId, path } = pageContainer.state;
+  let { revisionId } = pageContainer.state;
   // get options
   // get options
   const options = pageContainer.getCurrentOptionsToSave();
   const options = pageContainer.getCurrentOptionsToSave();
   options.socketClientId = websocketContainer.getCocketClientId();
   options.socketClientId = websocketContainer.getCocketClientId();
@@ -255,7 +256,7 @@ const saveWithSubmitButton = function(submitOpts) {
     // get markdown
     // get markdown
     promise = pageEditorByHackmd.getMarkdown();
     promise = pageEditorByHackmd.getMarkdown();
     // use revisionId of PageEditorByHackmd
     // use revisionId of PageEditorByHackmd
-    revisionId = pageEditorByHackmd.getRevisionIdHackmdSynced();
+    revisionId = pageContainer.state.revisionIdHackmdSynced;
     // set option to sync
     // set option to sync
     options.isSyncRevisionToHackmd = true;
     options.isSyncRevisionToHackmd = true;
   }
   }
@@ -267,7 +268,7 @@ const saveWithSubmitButton = function(submitOpts) {
   // create or update
   // create or update
   if (pageId == null) {
   if (pageId == null) {
     promise = promise.then((markdown) => {
     promise = promise.then((markdown) => {
-      return appContainer.createPage(pagePath, markdown, options);
+      return appContainer.createPage(path, markdown, options);
     });
     });
   }
   }
   else {
   else {

+ 8 - 8
src/client/js/services/PageContainer.js

@@ -33,7 +33,6 @@ export default class PageContainer extends Container {
       pageId: mainContent.getAttribute('data-page-id'),
       pageId: mainContent.getAttribute('data-page-id'),
       revisionId,
       revisionId,
       revisionCreatedAt: +mainContent.getAttribute('data-page-revision-created'),
       revisionCreatedAt: +mainContent.getAttribute('data-page-revision-created'),
-      revisionIdHackmdSynced: mainContent.getAttribute('data-page-revision-id-hackmd-synced'),
       path: mainContent.getAttribute('data-path'),
       path: mainContent.getAttribute('data-path'),
 
 
       templateTagData: mainContent.getAttribute('data-template-tags') || '',
       templateTagData: mainContent.getAttribute('data-template-tags') || '',
@@ -47,6 +46,7 @@ export default class PageContainer extends Container {
 
 
       // latest(on remote) information
       // latest(on remote) information
       remoteRevisionId: revisionId,
       remoteRevisionId: revisionId,
+      revisionIdHackmdSynced: mainContent.getAttribute('data-page-revision-id-hackmd-synced'),
       lastUpdateUsername: undefined,
       lastUpdateUsername: undefined,
       pageIdOnHackmd: mainContent.getAttribute('data-page-id-on-hackmd'),
       pageIdOnHackmd: mainContent.getAttribute('data-page-id-on-hackmd'),
       hasDraftOnHackmd: !!mainContent.getAttribute('data-page-has-draft-on-hackmd'),
       hasDraftOnHackmd: !!mainContent.getAttribute('data-page-has-draft-on-hackmd'),
@@ -139,13 +139,13 @@ export default class PageContainer extends Container {
       if (data.page.path === pageContainer.state.path) {
       if (data.page.path === pageContainer.state.path) {
         // update PageStatusAlert
         // update PageStatusAlert
         pageContainer.setLatestRemotePageData(data.page, data.user);
         pageContainer.setLatestRemotePageData(data.page, data.user);
-        // update PageEditorByHackmd
-        const pageEditorByHackmd = appContainer.getComponentInstance('PageEditorByHackmd');
-        if (pageEditorByHackmd != null) {
-          const page = data.page;
-          pageEditorByHackmd.setRevisionId(page.revision._id, page.revisionHackmdSynced);
-          pageEditorByHackmd.setHasDraftOnHackmd(data.page.hasDraftOnHackmd);
-        }
+        // update remote data
+        const page = data.page;
+        pageContainer.setState({
+          remoteRevisionId: page.revision._id,
+          revisionIdHackmdSynced: page.revisionHackmdSynced,
+          hasDraftOnHackmd: page.hasDraftOnHackmd,
+        });
       }
       }
     });
     });