From cb2f684a43d92e73dc18553c70e231eec8f5e980 Mon Sep 17 00:00:00 2001 From: Joffrey JAFFEUX Date: Mon, 2 Jan 2023 15:55:45 +0100 Subject: [PATCH] FIX: correctly always return a promise from loadMore (#19676) This commit also fixes an issue where `loading = false` was never called when the server had nothing new to return. --- .../assets/javascripts/discourse/services/chat-api.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/plugins/chat/assets/javascripts/discourse/services/chat-api.js b/plugins/chat/assets/javascripts/discourse/services/chat-api.js index d03cb4a8a0..e88cb954cc 100644 --- a/plugins/chat/assets/javascripts/discourse/services/chat-api.js +++ b/plugins/chat/assets/javascripts/discourse/services/chat-api.js @@ -71,19 +71,19 @@ class Collection { @bind loadMore() { + let promise = Promise.resolve(); + if (this.loading) { - return; + return promise; } if ( this._fetchedAll || (this.totalRows && this.items.length >= this.totalRows) ) { - return; + return promise; } - let promise; - this.loading = true; if (this.loadMoreURL) { @@ -97,8 +97,6 @@ class Collection { } this.meta = result.meta; }); - } else { - promise = Promise.resolve(); } return promise.finally(() => {