From 3959c3657cc752c9e898822f15f02d4831782f58 Mon Sep 17 00:00:00 2001 From: Cyril Date: Tue, 3 Mar 2026 14:35:46 +0100 Subject: [PATCH] =?UTF-8?q?=E2=99=BF=EF=B8=8F(frontend)=20add=20caption=20?= =?UTF-8?q?text=20size=20to=20accessibility=20store?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Persist captionTextSize (small/medium/large) in user preferences. --- src/frontend/src/stores/accessibility.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/frontend/src/stores/accessibility.ts b/src/frontend/src/stores/accessibility.ts index 39265fa6..add90462 100644 --- a/src/frontend/src/stores/accessibility.ts +++ b/src/frontend/src/stores/accessibility.ts @@ -2,12 +2,16 @@ import { proxy, subscribe } from 'valtio' import { STORAGE_KEYS } from '@/utils/storageKeys' import { deserializeToProxyMap } from '@/utils/valtio' +export type CaptionTextSize = 'small' | 'medium' | 'large' + type AccessibilityState = { announceReactions: boolean + captionTextSize: CaptionTextSize } const DEFAULT_STATE: AccessibilityState = { announceReactions: false, + captionTextSize: 'medium', } function getAccessibilityState(): AccessibilityState { @@ -15,6 +19,10 @@ function getAccessibilityState(): AccessibilityState { const stored = localStorage.getItem(STORAGE_KEYS.ACCESSIBILITY) if (stored) { const parsed = JSON.parse(stored) + const validCaptionSizes: CaptionTextSize[] = ['small', 'medium', 'large'] + const captionTextSize = validCaptionSizes.includes(parsed.captionTextSize) + ? parsed.captionTextSize + : DEFAULT_STATE.captionTextSize return { ...DEFAULT_STATE, ...parsed, @@ -22,6 +30,7 @@ function getAccessibilityState(): AccessibilityState { typeof parsed.announceReactions === 'boolean' ? parsed.announceReactions : DEFAULT_STATE.announceReactions, + captionTextSize, } }