Артем Леванов
first commit
41a71fd
raw
history blame contribute delete
652 Bytes
import { FC, ReactNode, useMemo, useState } from 'react';
import { LOCAL_STORAGE_THEME_KEY, Theme, ThemeContext } from '../lib/ThemeContext';
const defaultTheme = (localStorage.getItem(LOCAL_STORAGE_THEME_KEY) as Theme) || Theme.LIGHT;
interface Props {
children: ReactNode;
}
const ThemeProvider: FC<Props> = ({ children }) => {
const [theme, setTheme] = useState<Theme>(defaultTheme);
const defaultProps = useMemo(
() => ({
theme,
setTheme,
}),
[theme]
);
return <ThemeContext.Provider value={defaultProps}>{children}</ThemeContext.Provider>;
};
export default ThemeProvider;