mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-24 19:24:22 +01:00
respect theme in config
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { SyntaxStyle, RGBA } from "@opentui/core"
|
||||
import { createMemo } from "solid-js"
|
||||
import { createMemo, createSignal } from "solid-js"
|
||||
import { useSync } from "@tui/context/sync"
|
||||
import { createSimpleContext } from "./helper"
|
||||
import aura from "../../../../../../tui/internal/theme/themes/aura.json" with { type: "json" }
|
||||
@@ -83,7 +83,7 @@ type ThemeJson = {
|
||||
theme: Record<keyof Theme, ColorValue>
|
||||
}
|
||||
|
||||
export const THEMES = {
|
||||
export const THEMES: Record<string, Theme> = {
|
||||
aura: resolveTheme(aura),
|
||||
ayu: resolveTheme(ayu),
|
||||
catppuccin: resolveTheme(catppuccin),
|
||||
@@ -629,23 +629,24 @@ export const { use: useTheme, provider: ThemeProvider } = createSimpleContext({
|
||||
const sync = useSync()
|
||||
const kv = useKV()
|
||||
|
||||
const theme = createMemo(() => {
|
||||
return THEMES[kv.data.theme as keyof typeof THEMES] ?? THEMES.opencode
|
||||
const [theme, setTheme] = createSignal(sync.data.config.theme ?? kv.data.theme)
|
||||
|
||||
const values = createMemo(() => {
|
||||
return THEMES[theme()] ?? THEMES.opencode
|
||||
})
|
||||
|
||||
return {
|
||||
get theme() {
|
||||
return new Proxy(theme(), {
|
||||
get(_target, prop) {
|
||||
// @ts-expect-error
|
||||
return theme()[prop]
|
||||
},
|
||||
})
|
||||
},
|
||||
theme: new Proxy(values(), {
|
||||
get(_target, prop) {
|
||||
// @ts-expect-error
|
||||
return values()[prop]
|
||||
},
|
||||
}),
|
||||
get selectedTheme() {
|
||||
return kv.data.theme
|
||||
},
|
||||
setSelectedTheme(theme: string) {
|
||||
setTheme(theme)
|
||||
kv.set("theme", theme)
|
||||
},
|
||||
get ready() {
|
||||
|
||||
Reference in New Issue
Block a user