Files
oak-gpui/styles/src/theme/index.ts
T

27 lines
616 B
TypeScript

import { create } from "zustand"
import { Theme } from "./create_theme"
type ThemeState = {
theme: Theme | undefined
setTheme: (theme: Theme) => void
}
export const useThemeStore = create<ThemeState>((set) => ({
theme: undefined,
setTheme: (theme) => set(() => ({ theme })),
}))
export const useTheme = (): Theme => {
const { theme } = useThemeStore.getState()
if (!theme) throw new Error("Tried to use theme before it was loaded")
return theme
}
export * from "./create_theme"
export * from "./ramps"
export * from "./syntax"
export * from "./theme_config"
export * from "./color"