From 1f0abf5169f6bb87a6d457f9223155e7ac377d20 Mon Sep 17 00:00:00 2001 From: wukko Date: Fri, 7 Mar 2025 21:35:39 +0600 Subject: [PATCH] web/lib/settings: add accessibility section, add `dontAutoOpenQueue` moved `reduceMotion`, `reduceTransparency`, and `disableHaptics` to accessibility, migrated first two from old version of settings --- web/src/lib/settings/defaults.ts | 3 +++ web/src/lib/settings/migrate.ts | 11 +++++++++++ web/src/lib/types/settings/v5.ts | 6 +++++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/web/src/lib/settings/defaults.ts b/web/src/lib/settings/defaults.ts index 118618ad..18c3e186 100644 --- a/web/src/lib/settings/defaults.ts +++ b/web/src/lib/settings/defaults.ts @@ -11,9 +11,12 @@ const defaultSettings: CobaltSettings = { theme: "auto", language: defaultLocale, autoLanguage: true, + }, + accessibility: { reduceMotion: false, reduceTransparency: false, disableHaptics: false, + dontAutoOpenQueue: false, }, save: { alwaysProxy: false, diff --git a/web/src/lib/settings/migrate.ts b/web/src/lib/settings/migrate.ts index 6e021369..8c71d29c 100644 --- a/web/src/lib/settings/migrate.ts +++ b/web/src/lib/settings/migrate.ts @@ -64,6 +64,17 @@ const migrations: Record = { } } + if (settings?.appearance) { + if ("reduceMotion" in settings.appearance) { + out.accessibility!.reduceMotion = settings.appearance.reduceMotion; + delete settings.appearance.reduceMotion; + } + if ("reduceTransparency" in settings.appearance) { + out.accessibility!.reduceTransparency = settings.appearance.reduceTransparency; + delete settings.appearance.reduceTransparency; + } + } + return out as AllPartialSettingsWithSchema; }, }; diff --git a/web/src/lib/types/settings/v5.ts b/web/src/lib/types/settings/v5.ts index 230114c4..d0e684c3 100644 --- a/web/src/lib/types/settings/v5.ts +++ b/web/src/lib/types/settings/v5.ts @@ -2,8 +2,12 @@ import { type CobaltSettingsV4 } from "$lib/types/settings/v4"; export type CobaltSettingsV5 = Omit & { schemaVersion: 5, - appearance: CobaltSettingsV4['appearance'] & { + appearance: Omit, + accessibility: { + reduceMotion: boolean; + reduceTransparency: boolean; disableHaptics: boolean; + dontAutoOpenQueue: boolean; }, advanced: CobaltSettingsV4['advanced'] & { useWebCodecs: boolean;