From a4194d3fb25a695b845c4caf2b0e1bbc2d720675 Mon Sep 17 00:00:00 2001 From: Keegan George Date: Fri, 20 Jun 2025 10:12:08 -0700 Subject: [PATCH] FIX: AI preferences tab button not appearing unless Helper enabled (#1452) This update fixes an issue where the AI user preferences tab was not appearing unless `SiteSetting.ai_helper_enabled` was `true`. This is because we previously checked for it's presence when user preferences only had a single setting related to Helper. However, since then, we've also added search discoveries setting there too. As such, we don't want it to depend on Helper. We also sneak in this update a modernization of converting the preferences template from `.hbs` to `.gjs`. --- .../user-preferences-nav/ai-preferences.gjs | 20 +---- .../discourse/templates/preferences/ai.gjs | 40 ++++++++++ .../discourse/templates/preferences/ai.hbs | 29 ------- .../system/ai_helper/ai_image_caption_spec.rb | 21 ----- spec/system/ai_user_preferences_spec.rb | 80 +++++++++++++++++++ 5 files changed, 121 insertions(+), 69 deletions(-) create mode 100644 assets/javascripts/discourse/templates/preferences/ai.gjs delete mode 100644 assets/javascripts/discourse/templates/preferences/ai.hbs create mode 100644 spec/system/ai_user_preferences_spec.rb diff --git a/assets/javascripts/discourse/connectors/user-preferences-nav/ai-preferences.gjs b/assets/javascripts/discourse/connectors/user-preferences-nav/ai-preferences.gjs index 5800726d..ffbeee11 100644 --- a/assets/javascripts/discourse/connectors/user-preferences-nav/ai-preferences.gjs +++ b/assets/javascripts/discourse/connectors/user-preferences-nav/ai-preferences.gjs @@ -3,27 +3,9 @@ import { LinkTo } from "@ember/routing"; import dIcon from "discourse/helpers/d-icon"; import { i18n } from "discourse-i18n"; -function showAiPreferences(user, settings) { - // Since we only have one AI related user setting we don't show - // AI preferences if these conditions aren't met. - // If we add more user settings in the future we can move this - // logic to the the specific settings and conditionally show it in the template. - const aiHelperEnabledFeatures = - settings.ai_helper_enabled_features.split("|"); - - return ( - user?.user_allowed_ai_auto_image_captions && - aiHelperEnabledFeatures.includes("image_caption") && - settings.ai_helper_enabled - ); -} - export default class AutoImageCaptionSetting extends Component { static shouldRender(outletArgs, helper) { - return ( - helper.siteSettings.discourse_ai_enabled && - showAiPreferences(outletArgs.model, helper.siteSettings) - ); + return helper.siteSettings.discourse_ai_enabled; }