mirror of
https://github.com/placeholder-soft/web.git
synced 2026-04-29 11:25:28 +08:00
added event logging to colormode toggle (#988)
This commit is contained in:
committed by
GitHub
parent
51e2d13156
commit
31fad382e5
@@ -1,22 +1,42 @@
|
||||
import React from 'react';
|
||||
import {useColorMode, useThemeConfig} from '@docusaurus/theme-common';
|
||||
import React, { useCallback } from 'react';
|
||||
import { useColorMode, useThemeConfig } from '@docusaurus/theme-common';
|
||||
import ColorModeToggle from '@theme/ColorModeToggle';
|
||||
import styles from './styles.module.css';
|
||||
export default function NavbarColorModeToggle({className}) {
|
||||
import logEvent, {
|
||||
ActionType,
|
||||
ComponentType,
|
||||
AnalyticsEventImportance,
|
||||
} from 'base-ui/utils/logEvent';
|
||||
|
||||
export default function NavbarColorModeToggle({ className }) {
|
||||
const navbarStyle = useThemeConfig().navbar.style;
|
||||
const disabled = useThemeConfig().colorMode.disableSwitch;
|
||||
const {colorMode, setColorMode} = useColorMode();
|
||||
const { colorMode, setColorMode } = useColorMode();
|
||||
|
||||
const toggleSwitch = useCallback(() => {
|
||||
const newColorMode = colorMode === 'dark' ? 'light' : 'dark';
|
||||
|
||||
logEvent(
|
||||
`colormode_toggle_from_${colorMode}_to_${newColorMode}`,
|
||||
{
|
||||
action: ActionType.click,
|
||||
componentType: ComponentType.icon,
|
||||
context: 'base_docs_navbar',
|
||||
},
|
||||
AnalyticsEventImportance.low,
|
||||
);
|
||||
setColorMode(newColorMode);
|
||||
}, [colorMode, setColorMode]);
|
||||
|
||||
if (disabled) {
|
||||
return null;
|
||||
}
|
||||
return (
|
||||
<ColorModeToggle
|
||||
className={className}
|
||||
buttonClassName={
|
||||
navbarStyle === 'dark' ? styles.darkNavbarColorModeToggle : undefined
|
||||
}
|
||||
buttonClassName={navbarStyle === 'dark' ? styles.darkNavbarColorModeToggle : undefined}
|
||||
value={colorMode}
|
||||
onChange={setColorMode}
|
||||
onChange={toggleSwitch}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user