From 7cede44f6008603819ea46cda04a9a543bd32989 Mon Sep 17 00:00:00 2001 From: ayntgl Date: Sat, 9 Oct 2021 23:49:40 +0400 Subject: [PATCH] fix: goroutinize message-rendering and channel-acking together --- ui.go | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/ui.go b/ui.go index f3fdfa6..fea42af 100644 --- a/ui.go +++ b/ui.go @@ -92,19 +92,21 @@ func onChannelsTreeSelected(n *tview.TreeNode) { messagesTextView.Clear() - ms, err := session.ChannelMessages(cID, conf.GetMessagesLimit, "", "", "") - if err != nil { - return - } + go func() { + ms, err := session.ChannelMessages(cID, conf.GetMessagesLimit, "", "", "") + if err != nil { + return + } - for i := len(ms) - 1; i >= 0; i-- { - selectedChannel.Messages = append(selectedChannel.Messages, ms[i]) - go renderMessage(ms[i]) - } + for i := len(ms) - 1; i >= 0; i-- { + selectedChannel.Messages = append(selectedChannel.Messages, ms[i]) + renderMessage(ms[i]) + } - if len(ms) != 0 && isUnread(c) { - go session.ChannelMessageAck(c.ID, c.LastMessageID, "") - } + if len(ms) != 0 && isUnread(c) { + session.ChannelMessageAck(c.ID, c.LastMessageID, "") + } + }() } }