From d713c6fe9fcaf080f7b8a5c5a02dbabc0669a4b8 Mon Sep 17 00:00:00 2001 From: Richard Ramos Date: Wed, 19 Jan 2022 11:44:07 -0400 Subject: [PATCH] fix: display loading indicator depending on mailserver request status --- src/app/chat/event_handling.nim | 1 - src/app/chat/signal_handling.nim | 15 +++++++-------- src/app/chat/view.nim | 2 -- ui/app/AppLayouts/Chat/views/ChatColumnView.qml | 13 ------------- ui/imports/shared/views/chat/MessageView.qml | 3 --- 5 files changed, 7 insertions(+), 27 deletions(-) diff --git a/src/app/chat/event_handling.nim b/src/app/chat/event_handling.nim index f9567dccdd..047dd5f760 100644 --- a/src/app/chat/event_handling.nim +++ b/src/app/chat/event_handling.nim @@ -58,7 +58,6 @@ proc handleChatEvents(self: ChatController) = # app to be slower self.status.events.on("chatUpdate") do(e: Args): var evArgs = ChatUpdateArgs(e) - self.view.hideLoadingIndicator() self.view.updateChats(evArgs.chats) self.view.pushMessages(evArgs.messages) self.view.pushMembers(evArgs.chats) diff --git a/src/app/chat/signal_handling.nim b/src/app/chat/signal_handling.nim index 2fc20ef76b..af78fd88e1 100644 --- a/src/app/chat/signal_handling.nim +++ b/src/app/chat/signal_handling.nim @@ -22,15 +22,14 @@ proc handleSignals(self: ChatController) = var data = CommunitySignal(e) self.view.communities.addCommunityToList(data.community) - self.status.events.on(SignalType.MailserverRequestCompleted.event) do(e:Args): - # TODO: if the signal contains a cursor, request additional messages - # else: - self.view.hideLoadingIndicator() + self.status.events.on(SignalType.HistoryRequestStarted.event) do(e:Args): + self.view.messageView.setLoadingMessages(true) - self.status.events.on(SignalType.MailserverRequestExpired.event) do(e:Args): - # TODO: retry mailserver request up to N times or change mailserver - # If > N, then - self.view.hideLoadingIndicator() + self.status.events.on(SignalType.HistoryRequestCompleted.event) do(e:Args): + self.view.messageView.setLoadingMessages(false) + + self.status.events.on(SignalType.HistoryRequestFailed.event) do(e:Args): + self.view.messageView.setLoadingMessages(false) let mailserverWorker = self.appService.marathon[MailserverWorker().name] self.status.events.on(SignalType.MailserverAvailable.event) do(e:Args): diff --git a/src/app/chat/view.nim b/src/app/chat/view.nim index 49d2649d90..e210f1d25f 100644 --- a/src/app/chat/view.nim +++ b/src/app/chat/view.nim @@ -451,8 +451,6 @@ QtObject: proc pushPinnedMessages*(self: ChatsView, pinnedMessages: var seq[Message]) = self.messageView.pushPinnedMessages(pinnedMessages) - proc hideLoadingIndicator*(self: ChatsView) {.slot.} = - self.messageView.hideLoadingIndicator() proc deleteMessage*(self: ChatsView, channelId: string, messageId: string): bool = result = self.messageView.deleteMessage(channelId, messageId) diff --git a/ui/app/AppLayouts/Chat/views/ChatColumnView.qml b/ui/app/AppLayouts/Chat/views/ChatColumnView.qml index 0f24d47c8d..d86bc7a5bd 100644 --- a/ui/app/AppLayouts/Chat/views/ChatColumnView.qml +++ b/ui/app/AppLayouts/Chat/views/ChatColumnView.qml @@ -307,18 +307,6 @@ Item { height: chatInput.height Layout.preferredHeight: height - Connections { - target: root.rootStore.chatsModelInst.messageView - onLoadingMessagesChanged: - if(value){ - loadingMessagesIndicator.active = true - } else { - timer.setTimeout(function(){ - loadingMessagesIndicator.active = false; - }, 5000); - } - } - Loader { id: loadingMessagesIndicator active: root.rootStore.chatsModelInst.messageView.loadingMessages @@ -538,7 +526,6 @@ Item { Connections { target: root.rootStore.chatsModelInst.channelView onActiveChannelChanged: { - root.rootStore.chatsModelInst.messageView.hideLoadingIndicator() SelectedMessage.reset(); chatColumn.isReply = false; } diff --git a/ui/imports/shared/views/chat/MessageView.qml b/ui/imports/shared/views/chat/MessageView.qml index cf806c4cdb..c9cd90527b 100644 --- a/ui/imports/shared/views/chat/MessageView.qml +++ b/ui/imports/shared/views/chat/MessageView.qml @@ -260,9 +260,6 @@ Column { Component { id: fetchMoreMessagesButtonComponent FetchMoreMessagesButton { - onClicked: { - root.chatsModel.messageView.hideLoadingIndicator(); - } onTimerTriggered: { root.chatsModel.requestMoreMessages(Constants.fetchRangeLast24Hours); }