// Listen for settings changes, the re-compute theme import { listen } from "@tauri-apps/api/event"; import type { ModelPayload, Settings } from "@yaakapp-internal/models"; import { fireAndForget } from "./lib/fireAndForget"; import { getSettings } from "./lib/settings"; function setFonts(settings: Settings) { document.documentElement.style.setProperty("--font-family-editor", settings.editorFont ?? ""); document.documentElement.style.setProperty( "--font-family-interface", settings.interfaceFont ?? "", ); } listen("model_write", async (event) => { if (event.payload.change.type !== "upsert") return; if (event.payload.model.model !== "settings") return; setFonts(event.payload.model); }).catch(console.error); fireAndForget(getSettings().then((settings) => setFonts(settings)));