mirror of
https://github.com/anomalyco/opencode.git
synced 2026-05-04 19:57:22 +00:00
cleanup event listeners with solid-primitives/event-listener (#20619)
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { createEffect, onCleanup, onMount } from "solid-js"
|
||||
import { createEffect, onMount } from "solid-js"
|
||||
import { createStore } from "solid-js/store"
|
||||
import { makeEventListener } from "@solid-primitives/event-listener"
|
||||
import { createSimpleContext } from "../context/helper"
|
||||
import oc2ThemeJson from "./themes/oc-2.json"
|
||||
import { resolveThemeVariant, themeToCss } from "./resolve"
|
||||
@@ -237,19 +238,15 @@ export const { use: useTheme, provider: ThemeProvider } = createSimpleContext({
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof window === "object") {
|
||||
window.addEventListener("storage", onStorage)
|
||||
onCleanup(() => window.removeEventListener("storage", onStorage))
|
||||
}
|
||||
|
||||
onMount(() => {
|
||||
makeEventListener(window, "storage", onStorage)
|
||||
|
||||
const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)")
|
||||
const onMedia = () => {
|
||||
if (store.colorScheme !== "system") return
|
||||
setStore("mode", getSystemMode())
|
||||
}
|
||||
mediaQuery.addEventListener("change", onMedia)
|
||||
onCleanup(() => mediaQuery.removeEventListener("change", onMedia))
|
||||
makeEventListener(mediaQuery, "change", onMedia)
|
||||
|
||||
const rawTheme = read(STORAGE_KEYS.THEME_ID)
|
||||
const savedTheme = normalize(rawTheme ?? props.defaultTheme) ?? "oc-2"
|
||||
|
||||
Reference in New Issue
Block a user