From 208c17dcc8f8fea3167f61a78f32a151c603e91f Mon Sep 17 00:00:00 2001
From: Dessalines <tyhou13@gmx.com>
Date: Sat, 27 Jun 2020 09:03:34 -0400
Subject: Fixing comment edits stalling. Fixes #846

---
 ui/src/components/comment-form.tsx | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

(limited to 'ui/src/components/comment-form.tsx')

diff --git a/ui/src/components/comment-form.tsx b/ui/src/components/comment-form.tsx
index 0fb7824e..45974cc0 100644
--- a/ui/src/components/comment-form.tsx
+++ b/ui/src/components/comment-form.tsx
@@ -245,7 +245,7 @@ export class CommentForm extends Component<CommentFormProps, CommentFormState> {
     });
   }
 
-  handleFinished(data: CommentResponse) {
+  handleFinished(op: UserOperation, data: CommentResponse) {
     let isReply =
       this.props.node !== undefined && data.comment.parent_id !== null;
     let xor =
@@ -253,11 +253,16 @@ export class CommentForm extends Component<CommentFormProps, CommentFormState> {
 
     if (
       (data.comment.creator_id == UserService.Instance.user.id &&
-        // If its a reply, make sure parent child match
-        isReply &&
-        data.comment.parent_id == this.props.node.comment.id) ||
-      // Otherwise, check the XOR of the two
-      (!isReply && xor)
+        ((op == UserOperation.CreateComment &&
+          // If its a reply, make sure parent child match
+          isReply &&
+          data.comment.parent_id == this.props.node.comment.id) ||
+          // Otherwise, check the XOR of the two
+          (!isReply && xor))) ||
+      // If its a comment edit, only check that its from your user, and that its a
+      // text edit only
+
+      (op == UserOperation.EditComment && data.comment.content)
     ) {
       this.state.previewMode = false;
       this.state.loading = false;
@@ -373,10 +378,10 @@ export class CommentForm extends Component<CommentFormProps, CommentFormState> {
     if (UserService.Instance.user) {
       if (res.op == UserOperation.CreateComment) {
         let data = res.data as CommentResponse;
-        this.handleFinished(data);
+        this.handleFinished(res.op, data);
       } else if (res.op == UserOperation.EditComment) {
         let data = res.data as CommentResponse;
-        this.handleFinished(data);
+        this.handleFinished(res.op, data);
       }
     }
   }
-- 
cgit v1.2.3

