File size: 489 Bytes
dcedb25 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import { createContext, useContext } from 'react'
export type Theme = 'system' | 'light' | 'dark'
export interface ThemeContextValue {
theme: Theme
setTheme: (theme: Theme) => void
resolvedDark: boolean
}
export const ThemeContext = createContext<ThemeContextValue | null>(null)
export function useTheme(): ThemeContextValue {
const context = useContext(ThemeContext)
if (!context) {
throw new Error('useTheme must be used within a ThemeProvider')
}
return context
}
|