28 lines
626 B
TypeScript
28 lines
626 B
TypeScript
import { createContext, useContext } from 'react'
|
|
import { useTheme, Theme } from '~/hooks/useTheme'
|
|
|
|
interface ThemeContextType {
|
|
theme: Theme
|
|
setTheme: (theme: Theme) => void
|
|
toggleTheme: () => void
|
|
}
|
|
|
|
const ThemeContext = createContext<ThemeContextType>({
|
|
theme: 'light',
|
|
setTheme: () => {},
|
|
toggleTheme: () => {},
|
|
})
|
|
|
|
export function ThemeProvider({ children }: { children: React.ReactNode }) {
|
|
const themeState = useTheme()
|
|
return (
|
|
<ThemeContext.Provider value={themeState}>
|
|
{children}
|
|
</ThemeContext.Provider>
|
|
)
|
|
}
|
|
|
|
export function useThemeContext() {
|
|
return useContext(ThemeContext)
|
|
}
|