From 75251f6e7868a12420be06d08168dbdf1ed4bc88 Mon Sep 17 00:00:00 2001
From: Dessalines <tyhou13@gmx.com>
Date: Thu, 9 Jul 2020 09:47:26 -0400
Subject: Adding select quoting of text for comments. Fixes #790

---
 ui/src/components/comment-form.tsx | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

(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 770c127c..32bc3786 100644
--- a/ui/src/components/comment-form.tsx
+++ b/ui/src/components/comment-form.tsx
@@ -98,7 +98,7 @@ export class CommentForm extends Component<CommentFormProps, CommentFormState> {
   }
 
   componentDidMount() {
-    var textarea: any = document.getElementById(this.id);
+    let textarea: any = document.getElementById(this.id);
     autosize(textarea);
     this.tribute.attach(textarea);
     textarea.addEventListener('tribute-replaced', () => {
@@ -106,6 +106,22 @@ export class CommentForm extends Component<CommentFormProps, CommentFormState> {
       this.setState(this.state);
       autosize.update(textarea);
     });
+
+    // Quoting of selected text
+    let selectedText = window.getSelection().toString();
+    if (selectedText) {
+      let quotedText =
+        selectedText
+          .split('\n')
+          .map(t => `> ${t}`)
+          .join('\n') + '\n\n';
+      this.state.commentForm.content = quotedText;
+      this.setState(this.state);
+      // Not sure why this needs a delay
+      setTimeout(() => autosize.update(textarea), 10);
+    }
+
+    textarea.focus();
   }
 
   componentDidUpdate() {
-- 
cgit v1.2.3

