From 0e007842184baef1d1c5537982e8f55a43c13e28 Mon Sep 17 00:00:00 2001 From: Joffrey JAFFEUX <j.jaffeux@gmail.com> Date: Tue, 22 Aug 2023 18:22:25 +0200 Subject: [PATCH] UX: do not show user tab preference when disabled (#23188) Prior to this fix we would only check if the user is allowed to chat and not if chat is enabled. --- ...user-nav__preferences-chat.hbs => chat-preferences.hbs} | 4 ++-- .../connectors/user-preferences-nav/chat-preferences.js | 7 +++++++ plugins/chat/spec/system/user_chat_preferences_spec.rb | 6 ++++++ 3 files changed, 15 insertions(+), 2 deletions(-) rename plugins/chat/assets/javascripts/discourse/connectors/user-preferences-nav/{user-nav__preferences-chat.hbs => chat-preferences.hbs} (66%) create mode 100644 plugins/chat/assets/javascripts/discourse/connectors/user-preferences-nav/chat-preferences.js diff --git a/plugins/chat/assets/javascripts/discourse/connectors/user-preferences-nav/user-nav__preferences-chat.hbs b/plugins/chat/assets/javascripts/discourse/connectors/user-preferences-nav/chat-preferences.hbs similarity index 66% rename from plugins/chat/assets/javascripts/discourse/connectors/user-preferences-nav/user-nav__preferences-chat.hbs rename to plugins/chat/assets/javascripts/discourse/connectors/user-preferences-nav/chat-preferences.hbs index aeeef0a9a5e..197fef79067 100644 --- a/plugins/chat/assets/javascripts/discourse/connectors/user-preferences-nav/user-nav__preferences-chat.hbs +++ b/plugins/chat/assets/javascripts/discourse/connectors/user-preferences-nav/chat-preferences.hbs @@ -1,6 +1,6 @@ -{{#if (or this.model.can_chat this.currentUser.admin)}} +<li class="user-nav__preferences-chat"> <LinkTo @route="preferences.chat"> {{d-icon "d-chat"}} <span>{{i18n "chat.title_capitalized"}}</span> </LinkTo> -{{/if}} \ No newline at end of file +</li> \ No newline at end of file diff --git a/plugins/chat/assets/javascripts/discourse/connectors/user-preferences-nav/chat-preferences.js b/plugins/chat/assets/javascripts/discourse/connectors/user-preferences-nav/chat-preferences.js new file mode 100644 index 00000000000..33364cb7864 --- /dev/null +++ b/plugins/chat/assets/javascripts/discourse/connectors/user-preferences-nav/chat-preferences.js @@ -0,0 +1,7 @@ +import Component from "@glimmer/component"; + +export default class ChatPreferences extends Component { + static shouldRender(model, { siteSettings, currentUser }) { + return siteSettings.chat_enabled && (model.can_chat || currentUser?.admin); + } +} diff --git a/plugins/chat/spec/system/user_chat_preferences_spec.rb b/plugins/chat/spec/system/user_chat_preferences_spec.rb index 3657893c172..50718c118ba 100644 --- a/plugins/chat/spec/system/user_chat_preferences_spec.rb +++ b/plugins/chat/spec/system/user_chat_preferences_spec.rb @@ -16,6 +16,12 @@ RSpec.describe "User chat preferences", type: :system do sign_in(current_user) end + it "doesn’t show the tab" do + visit("/u/#{current_user.username}/preferences") + + expect(page).to have_no_css(".user-nav__preferences-chat", visible: :all) + end + it "shows a not found page" do visit("/u/#{current_user.username}/preferences/chat")