diff --git a/client/src/telemetry/constants.ts b/client/src/telemetry/constants.ts index caab568d3153..6cf1a3ace4f5 100644 --- a/client/src/telemetry/constants.ts +++ b/client/src/telemetry/constants.ts @@ -78,3 +78,4 @@ export const BASELINE = Object.freeze({ export const CLIENT_SIDE_NAVIGATION = "client_side_nav"; export const LANGUAGE = "language"; +export const THEME_SWITCHER = "theme_switcher"; diff --git a/client/src/ui/molecules/theme-switcher/index.tsx b/client/src/ui/molecules/theme-switcher/index.tsx index f542527e3886..91e143ccb6f0 100644 --- a/client/src/ui/molecules/theme-switcher/index.tsx +++ b/client/src/ui/molecules/theme-switcher/index.tsx @@ -9,6 +9,8 @@ import "./index.scss"; import { switchTheme } from "../../../utils"; import { Theme } from "../../../types/theme"; import { useUIStatus } from "../../../ui-context"; +import { useGleanClick } from "../../../telemetry/glean-context"; +import { THEME_SWITCHER } from "../../../telemetry/constants"; type ThemeButton = { id: Theme; @@ -19,6 +21,7 @@ export const ThemeSwitcher = () => { const menuId = "themes-menu"; const [isOpen, setIsOpen] = useState(false); + const gleanClick = useGleanClick(); const { setColorScheme } = useUIStatus(); const [activeTheme, setActiveTheme] = React.useState("os-default"); @@ -30,6 +33,7 @@ export const ThemeSwitcher = () => { `} icon={`theme-${id}`} onClickHandler={() => { + gleanClick(`${THEME_SWITCHER}: switch -> ${id}`); setColorScheme(id); switchTheme(id, setActiveTheme); setIsOpen(false); @@ -74,6 +78,7 @@ export const ThemeSwitcher = () => { icon={`theme-${activeTheme}`} extraClasses="theme-switcher-menu small" onClickHandler={() => { + gleanClick(`${THEME_SWITCHER}: ${isOpen ? "close" : "open"}`); setIsOpen(!isOpen); }} >