From 68f886e0b3d64edea62bfd896fd0608a3efe87a1 Mon Sep 17 00:00:00 2001 From: Sean Lynch Date: Mon, 12 Feb 2024 10:38:47 -0500 Subject: [PATCH] Add full fallback settings when `setting()` is not defined (context) --- .changeset/fifty-seals-hang.md | 5 +++++ .../svelte-ux/src/lib/components/settings.ts | 16 ++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) create mode 100644 .changeset/fifty-seals-hang.md diff --git a/.changeset/fifty-seals-hang.md b/.changeset/fifty-seals-hang.md new file mode 100644 index 000000000..67f3a14d1 --- /dev/null +++ b/.changeset/fifty-seals-hang.md @@ -0,0 +1,5 @@ +--- +"svelte-ux": patch +--- + +Do not require `settings()` to be defined diff --git a/packages/svelte-ux/src/lib/components/settings.ts b/packages/svelte-ux/src/lib/components/settings.ts index 084036a15..a0ea3bf28 100644 --- a/packages/svelte-ux/src/lib/components/settings.ts +++ b/packages/svelte-ux/src/lib/components/settings.ts @@ -118,15 +118,19 @@ export function settings(settings: SettingsInput): Settings { }); } +const FALLBACK_CONTEXT: Settings = { + currentTheme: createThemeStore({ light: ['light'], dark: ['dark'] }), + componentSettingsCache: {}, + ...createLocaleStores({}), +}; + export function getSettings(): Settings { - // in a try/catch to be able to test wo svelte components + // in a try/catch to be able to test w/o svelte components + try { - return getContext(settingsKey) ?? {}; + return getContext(settingsKey) ?? FALLBACK_CONTEXT; } catch (error) { - return { - currentTheme: createThemeStore({ light: ['light'], dark: ['dark'] }), - componentSettingsCache: {}, - }; + return FALLBACK_CONTEXT; } }