Files
tom goriunovandGitHub 5c0c18149d Move charts to toolkit and improve color mode hook (#3075)
* move charts to toolkit

* refactor imports

* fix tests

* change the behavior of the color mode hook and add the noWatermark prop

* fix gas tracker test and fix toolkit build
2025-10-21 17:33:04 +02:00

41 lines
1.0 KiB
TypeScript

'use client';
import { ThemeProvider, useTheme } from 'next-themes';
import type { ThemeProviderProps } from 'next-themes';
import * as React from 'react';
import config from 'configs/app';
export interface ColorModeProviderProps extends ThemeProviderProps {}
export type ColorMode = 'light' | 'dark';
export function ColorModeProvider(props: ColorModeProviderProps) {
return (
<ThemeProvider
attribute="class"
scriptProps={{ 'data-cfasync': 'false' }}
defaultTheme={ config.UI.colorTheme.default?.colorMode }
disableTransitionOnChange
{ ...props }
/>
);
}
export function useColorMode() {
const { resolvedTheme, setTheme } = useTheme();
const toggleColorMode = () => {
setTheme(resolvedTheme === 'dark' ? 'light' : 'dark');
};
return {
colorMode: resolvedTheme as ColorMode,
setColorMode: setTheme,
toggleColorMode,
};
}
export function useColorModeValue<T>(light: T, dark: T) {
const { colorMode } = useColorMode();
return colorMode === 'dark' ? dark : light;
}