From 518fb2ee2434cfb5f2a77294621928d4b415bccd Mon Sep 17 00:00:00 2001 From: Hiep Le <69354317+hieptl@users.noreply.github.com> Date: Thu, 5 Mar 2026 02:03:47 +0700 Subject: [PATCH] fix(frontend): hide add team members button when anonymous analytics is disabled (#13209) --- .../account-settings-context-menu.test.tsx | 17 ++++++++++++++++- .../account-settings-context-menu.tsx | 6 +++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/frontend/__tests__/components/context-menu/account-settings-context-menu.test.tsx b/frontend/__tests__/components/context-menu/account-settings-context-menu.test.tsx index c0a9264fe5..cc009e894d 100644 --- a/frontend/__tests__/components/context-menu/account-settings-context-menu.test.tsx +++ b/frontend/__tests__/components/context-menu/account-settings-context-menu.test.tsx @@ -44,8 +44,9 @@ describe("AccountSettingsContextMenu", () => { return renderWithProviders({ui}); }; - const renderWithSaasConfig = (ui: React.ReactElement) => { + const renderWithSaasConfig = (ui: React.ReactElement, options?: { analyticsConsent?: boolean }) => { queryClient.setQueryData(["web-client-config"], createMockWebClientConfig({ app_mode: "saas" })); + queryClient.setQueryData(["settings"], { user_consents_to_analytics: options?.analyticsConsent ?? true }); return render( {ui} @@ -181,6 +182,20 @@ describe("AccountSettingsContextMenu", () => { expect(screen.queryByText("SETTINGS$NAV_ADD_TEAM_MEMBERS")).not.toBeInTheDocument(); }); + it("should not show Add Team Members button when analytics consent is disabled", () => { + vi.mocked(posthog.useFeatureFlagEnabled).mockReturnValue(true); + renderWithSaasConfig( + , + { analyticsConsent: false }, + ); + + expect(screen.queryByTestId("add-team-members-button")).not.toBeInTheDocument(); + expect(screen.queryByText("SETTINGS$NAV_ADD_TEAM_MEMBERS")).not.toBeInTheDocument(); + }); + it("should call tracking function and onClose when Add Team Members button is clicked", async () => { vi.mocked(posthog.useFeatureFlagEnabled).mockReturnValue(true); renderWithSaasConfig( diff --git a/frontend/src/components/features/context-menu/account-settings-context-menu.tsx b/frontend/src/components/features/context-menu/account-settings-context-menu.tsx index 6dddd52620..cdc18521cb 100644 --- a/frontend/src/components/features/context-menu/account-settings-context-menu.tsx +++ b/frontend/src/components/features/context-menu/account-settings-context-menu.tsx @@ -12,6 +12,7 @@ import DocumentIcon from "#/icons/document.svg?react"; import PlusIcon from "#/icons/plus.svg?react"; import { useSettingsNavItems } from "#/hooks/use-settings-nav-items"; import { useConfig } from "#/hooks/query/use-config"; +import { useSettings } from "#/hooks/query/use-settings"; import { useTracking } from "#/hooks/use-tracking"; interface AccountSettingsContextMenuProps { @@ -27,6 +28,7 @@ export function AccountSettingsContextMenu({ const { t } = useTranslation(); const { trackAddTeamMembersButtonClick } = useTracking(); const { data: config } = useConfig(); + const { data: settings } = useSettings(); const isAddTeamMemberEnabled = useFeatureFlagEnabled( "exp_add_team_member_button", ); @@ -34,7 +36,9 @@ export function AccountSettingsContextMenu({ const items = useSettingsNavItems(); const isSaasMode = config?.app_mode === "saas"; - const showAddTeamMembers = isSaasMode && isAddTeamMemberEnabled; + const hasAnalyticsConsent = settings?.user_consents_to_analytics === true; + const showAddTeamMembers = + isSaasMode && isAddTeamMemberEnabled && hasAnalyticsConsent; const navItems = items.map((item) => ({ ...item,