This commit is contained in:
Sebastian Herrlinger
2026-04-17 22:51:14 +02:00
parent 7b93488551
commit 9ca16a323a
@@ -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)
}