19 lines
453 B
TypeScript
Executable File
19 lines
453 B
TypeScript
Executable File
import {createContext, useContext} from 'react';
|
|
import {CssTheme} from './css-theme';
|
|
|
|
export type ThemeId = 'light' | 'dark' | number;
|
|
|
|
export interface ThemeSelectorContextValue {
|
|
allThemes: CssTheme[];
|
|
selectedTheme: CssTheme;
|
|
selectTheme: (themeId: ThemeId) => void;
|
|
}
|
|
|
|
export const ThemeSelectorContext = createContext<ThemeSelectorContextValue>(
|
|
null!
|
|
);
|
|
|
|
export function useThemeSelector() {
|
|
return useContext(ThemeSelectorContext);
|
|
}
|