mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
* 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
41 lines
1.0 KiB
TypeScript
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;
|
|
}
|