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

update hasDraftOnHackmd with 'page edited' websocket event

Yuki Takei 7 лет назад
Родитель
Сommit
74c30ad14f
2 измененных файлов с 15 добавлено и 0 удалено
  1. 7 0
      resource/js/app.js
  2. 8 0
      resource/js/components/PageEditorByHackmd.jsx

+ 7 - 0
resource/js/app.js

@@ -429,12 +429,19 @@ if (customHeaderEditorElem != null) {
 // notification from websocket
 const socket = io();
 socket.on('page edited', function(data) {
+  console.log(data);
   if (data.page.path == pagePath) {
+    // update PageStatusAlert
     const pageStatusAlert = componentInstances.pageStatusAlert;
     if (pageStatusAlert != null) {
       pageStatusAlert.setLatestRevisionId(data.page._id.toString());
       pageStatusAlert.setLastUpdateUsername(data.user.name);
     }
+    // update PageEditorByHackmd
+    const pageEditorByHackmd = componentInstances.pageEditorByHackmd;
+    if (pageEditorByHackmd != null) {
+      pageEditorByHackmd.setHasDraftOnHackmd(data.page.hasDraftOnHackmd);
+    }
   }
 });
 

+ 8 - 0
resource/js/components/PageEditorByHackmd.jsx

@@ -64,6 +64,14 @@ export default class PageEditorByHackmd extends React.PureComponent {
     this.setState({revisionId});
   }
 
+  /**
+   * update hasDraftOnHackmd of state
+   * @param {bool} hasDraftOnHackmd
+   */
+  setHasDraftOnHackmd(hasDraftOnHackmd) {
+    this.setState({hasDraftOnHackmd});
+  }
+
   getHackmdUri() {
     const envVars = this.props.crowi.config.env;
     return envVars.HACKMD_URI;