From 9ca16a323a3714ab5e5bb0e90e4de92cae84fbf7 Mon Sep 17 00:00:00 2001 From: Sebastian Herrlinger Date: Fri, 17 Apr 2026 22:51:14 +0200 Subject: [PATCH] stash --- packages/opencode/src/cli/cmd/tui/context/theme.tsx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/opencode/src/cli/cmd/tui/context/theme.tsx b/packages/opencode/src/cli/cmd/tui/context/theme.tsx index 96f7e80683..8ba07e74b7 100644 --- a/packages/opencode/src/cli/cmd/tui/context/theme.tsx +++ b/packages/opencode/src/cli/cmd/tui/context/theme.tsx @@ -314,8 +314,11 @@ export const { use: useTheme, provider: ThemeProvider } = createSimpleContext({ setStore( produce((draft) => { const lock = pick(kv.get("theme_mode_lock")) - const mode = pick(kv.get("theme_mode", props.mode)) - draft.mode = lock ?? mode ?? props.mode + const mode = lock ?? props.mode + if (!lock && pick(kv.get("theme_mode")) !== undefined) { + kv.set("theme_mode", undefined) + } + draft.mode = mode draft.lock = lock const active = config.theme ?? kv.get("theme", "opencode") draft.active = typeof active === "string" ? active : "opencode" @@ -372,8 +375,8 @@ export const { use: useTheme, provider: ThemeProvider } = createSimpleContext({ }) } - function apply(mode: "dark" | "light") { - kv.set("theme_mode", mode) + function apply(mode: "dark" | "light", persist = store.lock !== undefined) { + if (persist) kv.set("theme_mode", mode) if (store.mode === mode) return setStore("mode", mode) renderer.clearPaletteCache() @@ -389,12 +392,12 @@ export const { use: useTheme, provider: ThemeProvider } = createSimpleContext({ function free() { setStore("lock", undefined) kv.set("theme_mode_lock", undefined) + kv.set("theme_mode", undefined) const mode = renderer.themeMode if (mode) apply(mode) } const handle = (mode: "dark" | "light") => { - console.log('event mode', mode) if (store.lock) return apply(mode) }