From 255f47fe56a1f9db2ca669aff1d9bd9cdde5dd8b Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Fri, 11 Jun 2021 11:05:28 +0300
Subject: fix infinite loop

---
 src/components/rich_content/rich_content.jsx | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

(limited to 'src/components/rich_content/rich_content.jsx')

diff --git a/src/components/rich_content/rich_content.jsx b/src/components/rich_content/rich_content.jsx
index 8972c494..f7fa4dce 100644
--- a/src/components/rich_content/rich_content.jsx
+++ b/src/components/rich_content/rich_content.jsx
@@ -42,7 +42,7 @@ export default Vue.component('RichContent', {
   // NEVER EVER TOUCH DATA INSIDE RENDER
   render (h) {
     // Pre-process HTML
-    const { newHtml: html, lastMentions } = preProcessPerLine(this.html, this.greentext, this.hideLastMentions)
+    const { newHtml: html, lastMentions } = preProcessPerLine(this.html, this.greentext, this.hideMentions)
     const firstMentions = [] // Mentions that appear in the beginning of post body
     const lastTags = [] // Tags that appear at the end of post body
     const writtenMentions = [] // All mentions that appear in post body
@@ -187,6 +187,13 @@ export default Vue.component('RichContent', {
       return item
     }
 
+    // DO NOT USE SLOTS they cause a re-render feedback loop here.
+    // slots updated -> rerender -> emit -> update up the tree -> rerender -> ...
+    // at least until vue3?
+    const result = <span class="RichContent">
+      { convertHtmlToTree(html).map(processItem).reverse().map(processItemReverse).reverse() }
+    </span>
+
     const event = {
       firstMentions,
       lastMentions,
@@ -195,12 +202,6 @@ export default Vue.component('RichContent', {
       writtenTags
     }
 
-    const result = <span class="RichContent">
-      { this.$slots.prefix }
-      { convertHtmlToTree(html).map(processItem).reverse().map(processItemReverse).reverse() }
-      { this.$slots.suffix }
-    </span>
-
     // DO NOT MOVE TO UPDATE. BAD IDEA.
     this.$emit('parseReady', event)
 
-- 
cgit v1.2.3-70-g09d2

