From 531793e98fe226f4a13dd405b7cfb45de0f0d9e1 Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Tue, 21 Jul 2020 11:58:28 -0400 Subject: [PATCH] REFACTOR: Remove `Discourse.SiteSettings` from topic tracking state --- .../discourse/app/models/topic-tracking-state.js | 14 ++++++++++---- .../pre-initializers/inject-discourse-objects.js | 1 + 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/discourse/app/models/topic-tracking-state.js b/app/assets/javascripts/discourse/app/models/topic-tracking-state.js index d7d8be5b0ba..014b176e67e 100644 --- a/app/assets/javascripts/discourse/app/models/topic-tracking-state.js +++ b/app/assets/javascripts/discourse/app/models/topic-tracking-state.js @@ -27,14 +27,14 @@ function isUnseen(topic) { return !topic.is_seen; } -function hasMutedTags(topicTagIds, mutedTagIds) { +function hasMutedTags(topicTagIds, mutedTagIds, siteSettings) { if (!mutedTagIds || !topicTagIds) { return false; } return ( - (Discourse.SiteSettings.remove_muted_tags_from_latest === "always" && + (siteSettings.remove_muted_tags_from_latest === "always" && topicTagIds.any(tagId => mutedTagIds.includes(tagId))) || - (Discourse.SiteSettings.remove_muted_tags_from_latest === "only_muted" && + (siteSettings.remove_muted_tags_from_latest === "only_muted" && topicTagIds.every(tagId => mutedTagIds.includes(tagId))) ); } @@ -81,7 +81,13 @@ const TopicTrackingState = EmberObject.extend({ if (["new_topic", "latest"].includes(data.message_type)) { const mutedTagIds = User.currentProp("muted_tag_ids"); - if (hasMutedTags(data.payload.topic_tag_ids, mutedTagIds)) { + if ( + hasMutedTags( + data.payload.topic_tag_ids, + mutedTagIds, + this.siteSettings + ) + ) { return; } } diff --git a/app/assets/javascripts/discourse/app/pre-initializers/inject-discourse-objects.js b/app/assets/javascripts/discourse/app/pre-initializers/inject-discourse-objects.js index 784759e6993..fe6c7b638cb 100644 --- a/app/assets/javascripts/discourse/app/pre-initializers/inject-discourse-objects.js +++ b/app/assets/javascripts/discourse/app/pre-initializers/inject-discourse-objects.js @@ -47,6 +47,7 @@ export default { const topicTrackingState = TopicTrackingState.create({ messageBus: MessageBus, + siteSettings, currentUser }); app.register("topic-tracking-state:main", topicTrackingState, {