fix(frontend): hide add team members button when anonymous analytics is disabled (#13209)

This commit is contained in:
Hiep Le
2026-03-05 02:03:47 +07:00
committed by GitHub
parent eeac9f14a3
commit 518fb2ee24
2 changed files with 21 additions and 2 deletions

View File

@@ -44,8 +44,9 @@ describe("AccountSettingsContextMenu", () => {
return renderWithProviders(<MemoryRouter>{ui}</MemoryRouter>);
};
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(
<QueryClientProvider client={queryClient}>
<MemoryRouter>{ui}</MemoryRouter>
@@ -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(
<AccountSettingsContextMenu
onLogout={onLogoutMock}
onClose={onCloseMock}
/>,
{ 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(

View File

@@ -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,