From 6e0e6014d10f4d5778e178b53dae32ca9534e149 Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Wed, 5 Jan 2022 14:52:30 -0500 Subject: [PATCH] FIX: When loading more topics, `showFooter` was not updated properly --- .../discourse/app/components/discovery-topics-list.js | 7 ++++--- .../javascripts/discourse/app/controllers/discovery.js | 3 +++ .../discourse/app/templates/discovery/topics.hbs | 1 + 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/discourse/app/components/discovery-topics-list.js b/app/assets/javascripts/discourse/app/components/discovery-topics-list.js index 5790316a18a..b0da8c5924e 100644 --- a/app/assets/javascripts/discourse/app/components/discovery-topics-list.js +++ b/app/assets/javascripts/discourse/app/components/discovery-topics-list.js @@ -5,7 +5,7 @@ import LoadMore from "discourse/mixins/load-more"; import UrlRefresh from "discourse/mixins/url-refresh"; import { inject as service } from "@ember/service"; -const DiscoveryTopicsListComponent = Component.extend(UrlRefresh, LoadMore, { +export default Component.extend(UrlRefresh, LoadMore, { classNames: ["contents"], eyelineSelector: ".topic-list-item", documentTitle: service(), @@ -60,9 +60,10 @@ const DiscoveryTopicsListComponent = Component.extend(UrlRefresh, LoadMore, { if (moreTopicsUrl && $(window).height() >= $(document).height()) { this.send("loadMore"); } + if (this.loadingComplete) { + this.loadingComplete(); + } }); }, }, }); - -export default DiscoveryTopicsListComponent; diff --git a/app/assets/javascripts/discourse/app/controllers/discovery.js b/app/assets/javascripts/discourse/app/controllers/discovery.js index c06ad44e2b2..fcd3ceb1639 100644 --- a/app/assets/javascripts/discourse/app/controllers/discovery.js +++ b/app/assets/javascripts/discourse/app/controllers/discovery.js @@ -1,5 +1,6 @@ import Controller, { inject as controller } from "@ember/controller"; import { alias, equal, not } from "@ember/object/computed"; +import { action } from "@ember/object"; import Category from "discourse/models/category"; import DiscourseURL from "discourse/lib/url"; import { inject as service } from "@ember/service"; @@ -20,11 +21,13 @@ export default Controller.extend({ loadedAllItems: not("discoveryTopics.model.canLoadMore"), + @action loadingBegan() { this.set("loading", true); this.set("application.showFooter", false); }, + @action loadingComplete() { this.set("loading", false); this.set("application.showFooter", this.loadedAllItems); diff --git a/app/assets/javascripts/discourse/app/templates/discovery/topics.hbs b/app/assets/javascripts/discourse/app/templates/discovery/topics.hbs index 9178f3ef8c2..463eb6c1bcc 100644 --- a/app/assets/javascripts/discourse/app/templates/discovery/topics.hbs +++ b/app/assets/javascripts/discourse/app/templates/discovery/topics.hbs @@ -19,6 +19,7 @@ model=model showResetNew=showResetNew showDismissRead=showDismissRead resetNew=( {{#discovery-topics-list model=model refresh=(action "refresh") + loadingComplete=(action "loadingComplete") incomingCount=topicTrackingState.incomingCount autoAddTopicsToBulkSelect=autoAddTopicsToBulkSelect bulkSelectEnabled=bulkSelectEnabled