prometheus
1import React from 'react';
2
3export type themeName = 'light' | 'dark';
4export type themeSetting = themeName | 'auto';
5
6export interface ThemeCtx {
7theme: themeName;
8userPreference: themeSetting;
9setTheme: (t: themeSetting) => void;
10}
11
12// defaults, will be overridden in App.tsx
13export const ThemeContext = React.createContext<ThemeCtx>({
14theme: 'light',
15userPreference: 'auto',
16// eslint-disable-next-line @typescript-eslint/no-empty-function
17setTheme: (s: themeSetting) => {},
18});
19
20export const useTheme = (): ThemeCtx => {
21return React.useContext(ThemeContext);
22};
23