From f7eb8d44da7585f8e6b0f9939ad78ebde15a391e Mon Sep 17 00:00:00 2001
From: Ramon Souza <contato@ramonsouza.com>
Date: Tue, 27 Apr 2021 08:23:42 -0300
Subject: [PATCH] recompute heights multiple times when switching between
 public and private chats

---
 .../chat/time-window-list/component.jsx       | 22 +++++++++++--------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/bigbluebutton-html5/imports/ui/components/chat/time-window-list/component.jsx b/bigbluebutton-html5/imports/ui/components/chat/time-window-list/component.jsx
index 0ad1f177b4..9c7ac0f47c 100644
--- a/bigbluebutton-html5/imports/ui/components/chat/time-window-list/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/chat/time-window-list/component.jsx
@@ -133,7 +133,7 @@ class TimeWindowList extends PureComponent {
       ) {
       if (chatId !== prevChatId){
         this.systemMessageIndexes.forEach(index => {
-          this.listRef.recomputeRowHeights(index);
+          this.clearAndRecompute(index);
         });
       }
       this.listRef.forceUpdateGrid();
@@ -160,6 +160,17 @@ class TimeWindowList extends PureComponent {
     handleScrollUpdate(position || 1);
   }
 
+  clearAndRecompute(index) {
+    [500, 1000, 2000, 3000, 4000, 5000].forEach((i)=>{
+      setTimeout(() => {
+        if (this.listRef) {
+          this.cache.clear(index);
+          this.listRef.recomputeRowHeights(index);
+        }
+      }, i);
+    })
+  }
+
   scrollTo(position = null) {
     if (position) {
       setTimeout(() => this.setState({
@@ -193,14 +204,7 @@ class TimeWindowList extends PureComponent {
     if (needResizeMessages.includes(message.key)) {
       if (!this.systemMessageIndexes.includes(index)) {
         this.systemMessageIndexes.push(index);
-        [500, 1000, 2000, 3000, 4000, 5000].forEach((i)=>{
-          setTimeout(() => {
-            if (this.listRef) {
-              this.cache.clear(index);
-              this.listRef.recomputeRowHeights(index);
-            }
-          }, i);
-        })
+        this.clearAndRecompute(index);
       }
     }
 
-- 
GitLab