diff --git a/src/internal/base-component/use-telemetry.ts b/src/internal/base-component/use-telemetry.ts index fc3a796..3327ce4 100644 --- a/src/internal/base-component/use-telemetry.ts +++ b/src/internal/base-component/use-telemetry.ts @@ -4,9 +4,11 @@ import { ComponentConfiguration, useComponentMetrics } from "@cloudscape-design/component-toolkit/internal"; import { PACKAGE_SOURCE, PACKAGE_VERSION, THEME } from "../environment"; +import { getVisualTheme } from "../utils/get-visual-theme"; import { useVisualRefresh } from "./use-visual-refresh"; export function useTelemetry(componentName: string, config?: ComponentConfiguration) { - const theme = useVisualRefresh() ? "vr" : THEME; + const isVisualRefresh = useVisualRefresh(); + const theme = getVisualTheme(THEME, isVisualRefresh); useComponentMetrics(componentName, { packageSource: PACKAGE_SOURCE, packageVersion: PACKAGE_VERSION, theme }, config); } diff --git a/src/internal/utils/__tests__/get-visual-theme.test.ts b/src/internal/utils/__tests__/get-visual-theme.test.ts new file mode 100644 index 0000000..b0f061f --- /dev/null +++ b/src/internal/utils/__tests__/get-visual-theme.test.ts @@ -0,0 +1,20 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { describe, expect, it } from "vitest"; + +import { getVisualTheme } from "../../../../lib/components/internal/utils/get-visual-theme"; + +describe("getVisualTheme", () => { + it("returns vr when theme is polaris and VR is active", () => { + expect(getVisualTheme("polaris", true)).toBe("vr"); + }); + + it("returns polaris when theme is polaris and VR is not active", () => { + expect(getVisualTheme("polaris", false)).toBe("polaris"); + }); + + it("returns defined theme by default", () => { + expect(getVisualTheme("custom", false)).toBe("custom"); + expect(getVisualTheme("custom", true)).toBe("custom"); + }); +}); diff --git a/src/internal/utils/get-visual-theme.ts b/src/internal/utils/get-visual-theme.ts new file mode 100644 index 0000000..8c0336b --- /dev/null +++ b/src/internal/utils/get-visual-theme.ts @@ -0,0 +1,10 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +export const getVisualTheme = (theme: string, isVR: boolean) => { + if (theme === "polaris" && isVR) { + return "vr"; + } + + return theme; +};