diff --git a/app/assets/javascripts/discourse/app/initializers/user-tips.js b/app/assets/javascripts/discourse/app/initializers/user-tips.js index 16a04cd6e57..c72c85c151f 100644 --- a/app/assets/javascripts/discourse/app/initializers/user-tips.js +++ b/app/assets/javascripts/discourse/app/initializers/user-tips.js @@ -13,11 +13,19 @@ export default { this.messageBus = container.lookup("service:message-bus"); this.site = container.lookup("service:site"); - this.messageBus.subscribe("/user-tips", this.onMessage); + this.messageBus.subscribe( + `/user-tips/${this.currentUser.id}`, + this.onMessage + ); }, teardown() { - this.messageBus?.unsubscribe("/user-tips", this.onMessage); + if (this.currentUser) { + this.messageBus?.unsubscribe( + `/user-tips/${this.currentUser.id}`, + this.onMessage + ); + } }, @bind diff --git a/app/services/user_updater.rb b/app/services/user_updater.rb index 6a569b6a532..32481fb5933 100644 --- a/app/services/user_updater.rb +++ b/app/services/user_updater.rb @@ -251,7 +251,11 @@ class UserUpdater end end if attributes.key?(:seen_popups) || attributes.key?(:skip_new_user_tips) - MessageBus.publish("/user-tips", user.user_option.seen_popups, user_ids: [user.id]) + MessageBus.publish( + "/user-tips/#{user.id}", + user.user_option.seen_popups, + user_ids: [user.id], + ) end DiscourseEvent.trigger(:user_updated, user) end diff --git a/plugins/discourse-narrative-bot/assets/javascripts/initializers/new-user-narrative.js b/plugins/discourse-narrative-bot/assets/javascripts/initializers/new-user-narrative.js index f6123499e76..2cf2361121b 100644 --- a/plugins/discourse-narrative-bot/assets/javascripts/initializers/new-user-narrative.js +++ b/plugins/discourse-narrative-bot/assets/javascripts/initializers/new-user-narrative.js @@ -15,9 +15,9 @@ export default { this.appEvents = container.lookup("service:app-events"); withPluginApi("0.8.7", (api) => { - const currentUser = api.getCurrentUser(); + this.currentUser = api.getCurrentUser(); - if (!currentUser) { + if (!this.currentUser) { return; } @@ -41,17 +41,19 @@ export default { ); this.messageBus.subscribe( - "/new_user_narrative/tutorial_search", + `/new_user_narrative/tutorial_search/${this.currentUser.id}`, this.onMessage ); }); }, teardown() { - this.messageBus?.unsubscribe( - "/new_user_narrative/tutorial_search", - this.onMessage - ); + if (this.currentUser) { + this.messageBus?.unsubscribe( + `/new_user_narrative/tutorial_search/${this.currentUser.id}`, + this.onMessage + ); + } }, @bind diff --git a/plugins/discourse-narrative-bot/lib/discourse_narrative_bot/new_user_narrative.rb b/plugins/discourse-narrative-bot/lib/discourse_narrative_bot/new_user_narrative.rb index 52db9b17d28..fc1a69ea195 100644 --- a/plugins/discourse-narrative-bot/lib/discourse_narrative_bot/new_user_narrative.rb +++ b/plugins/discourse-narrative-bot/lib/discourse_narrative_bot/new_user_narrative.rb @@ -173,7 +173,11 @@ module DiscourseNarrativeBot topic = @post.topic post = topic.first_post - MessageBus.publish("/new_user_narrative/tutorial_search", {}, user_ids: [@user.id]) + MessageBus.publish( + "/new_user_narrative/tutorial_search/#{@user.id}", + {}, + user_ids: [@user.id], + ) raw = <<~MD #{post.raw} diff --git a/spec/services/user_updater_spec.rb b/spec/services/user_updater_spec.rb index 54de5883b37..6261ea50f10 100644 --- a/spec/services/user_updater_spec.rb +++ b/spec/services/user_updater_spec.rb @@ -551,7 +551,7 @@ RSpec.describe UserUpdater do context "when skip_new_user_tips is edited" do it "updates seen_popups too" do messages = - MessageBus.track_publish("/user-tips") do + MessageBus.track_publish("/user-tips/#{user.id}") do UserUpdater.new(Discourse.system_user, user).update(skip_new_user_tips: true) end @@ -573,7 +573,7 @@ RSpec.describe UserUpdater do context "when seen_popups is edited" do it "publishes a message" do messages = - MessageBus.track_publish("/user-tips") do + MessageBus.track_publish("/user-tips/#{user.id}") do UserUpdater.new(Discourse.system_user, user).update(seen_popups: [1]) end