Răsfoiți Sursa

improve PageStatusAlert behavior

Yuki Takei 7 ani în urmă
părinte
comite
6cf93da89f

+ 2 - 2
resource/js/app.js

@@ -193,10 +193,10 @@ const saveWithShortcutSuccessHandler = function(page) {
     const updateEditorValue = (editorMode !== 'hackmd');
     componentInstances.pageEditorByHackmd.setMarkdown(page.revision.body, updateEditorValue);
   }
-  // set revision id to PageStatusAlert
+  // clear state of PageStatusAlert
   const pageStatusAlert = componentInstances.pageStatusAlert;
   if (componentInstances.pageStatusAlert != null) {
-    pageStatusAlert.initRevisionId(pageRevisionId);
+    pageStatusAlert.clearStatus(pageRevisionId);
   }
 };
 

+ 2 - 2
resource/js/components/PageEditorByHackmd/HackmdEditor.jsx

@@ -63,8 +63,8 @@ export default class HackmdEditor extends React.PureComponent {
   }
 
   notifyBodyChangesHandler(body) {
-    // dispatch onChange()
-    if (this.props.onChange != null) {
+    // dispatch onChange() when there is difference from 'initializationMarkdown' props
+    if (this.props.onChange != null && body !== this.props.initializationMarkdown) {
       this.props.onChange(body);
     }
   }

+ 8 - 3
resource/js/components/PageStatusAlert.jsx

@@ -29,10 +29,15 @@ class PageStatusAlert extends React.Component {
     this.renderUpdatedAlert = this.renderUpdatedAlert.bind(this);
   }
 
-  initRevisionId(revisionId) {
+  /**
+   * clear status (invoked when page is updated)
+   */
+  clearStatus(updatedRevisionId) {
     this.setState({
-      revisionId,
-      latestRevisionId: revisionId,
+      revisionId: updatedRevisionId,
+      latestRevisionId: updatedRevisionId,
+      hasDraftOnHackmd: false,
+      isDraftUpdatingInRealtime: false,
     });
   }