summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/context/settings.tsx
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-03-25 06:25:57 -0500
committerAdam <[email protected]>2026-03-25 06:25:57 -0500
commit1041ae91d1a39401fe099747e3bc093bdcdaa079 (patch)
treeca5515910ad01f76639577ef8e3a991b644a5ade /packages/app/src/context/settings.tsx
parent898456a25cf2edbfc4ae4961b37424f633419dd6 (diff)
downloadopencode-1041ae91d1a39401fe099747e3bc093bdcdaa079.tar.gz
opencode-1041ae91d1a39401fe099747e3bc093bdcdaa079.zip
Reapply "fix(app): startup efficiency"
This reverts commit 898456a25cf2edbfc4ae4961b37424f633419dd6.
Diffstat (limited to 'packages/app/src/context/settings.tsx')
-rw-r--r--packages/app/src/context/settings.tsx13
1 files changed, 12 insertions, 1 deletions
diff --git a/packages/app/src/context/settings.tsx b/packages/app/src/context/settings.tsx
index 48788fe8e..eddd752eb 100644
--- a/packages/app/src/context/settings.tsx
+++ b/packages/app/src/context/settings.tsx
@@ -104,6 +104,13 @@ function withFallback<T>(read: () => T | undefined, fallback: T) {
return createMemo(() => read() ?? fallback)
}
+let font: Promise<typeof import("@opencode-ai/ui/font-loader")> | undefined
+
+function loadFont() {
+ font ??= import("@opencode-ai/ui/font-loader")
+ return font
+}
+
export const { use: useSettings, provider: SettingsProvider } = createSimpleContext({
name: "Settings",
init: () => {
@@ -111,7 +118,11 @@ export const { use: useSettings, provider: SettingsProvider } = createSimpleCont
createEffect(() => {
if (typeof document === "undefined") return
- document.documentElement.style.setProperty("--font-family-mono", monoFontFamily(store.appearance?.font))
+ const id = store.appearance?.font ?? defaultSettings.appearance.font
+ if (id !== defaultSettings.appearance.font) {
+ void loadFont().then((x) => x.ensureMonoFont(id))
+ }
+ document.documentElement.style.setProperty("--font-family-mono", monoFontFamily(id))
})
return {