20 lines
610 B
TypeScript
20 lines
610 B
TypeScript
import { createContext, type ReactNode, useContext } from "react";
|
|
import { useTheme } from "../hooks/use-theme.js";
|
|
|
|
type ThemeContextValue = ReturnType<typeof useTheme>;
|
|
|
|
const ThemeContext = createContext<ThemeContextValue | null>(null);
|
|
|
|
export function ThemeProvider({ children }: { children: ReactNode }) {
|
|
const value = useTheme();
|
|
return (
|
|
<ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>
|
|
);
|
|
}
|
|
|
|
export function useThemeContext(): ThemeContextValue {
|
|
const ctx = useContext(ThemeContext);
|
|
if (!ctx) throw new Error("useThemeContext requires ThemeProvider");
|
|
return ctx;
|
|
}
|