From a02b098fa7fa500dfb080fa3138a427bfad391cd Mon Sep 17 00:00:00 2001 From: Jannis Braun <151788261+TheZwiss@users.noreply.github.com> Date: Sat, 21 Mar 2026 23:22:49 +0100 Subject: [PATCH] feat: widen ScreenShareConfig types, bump persist to v12 --- packages/web/src/stores/voiceStore.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/web/src/stores/voiceStore.ts b/packages/web/src/stores/voiceStore.ts index 203bfa74..183fa172 100644 --- a/packages/web/src/stores/voiceStore.ts +++ b/packages/web/src/stores/voiceStore.ts @@ -7,8 +7,8 @@ import { useAuthStore } from './authStore'; import { isElectron } from '../platform/platform'; export interface ScreenShareConfig { - height: 1080 | 720 | 540; - fps: 60 | 45 | 30; + height: number | 'native'; + fps: number; mode: 'gaming' | 'text'; customBitrateKbps: number | null; shareAudio: boolean; @@ -526,7 +526,7 @@ export const useVoiceStore = create()( }), { name: 'backspace-voice-settings', - version: 11, + version: 12, migrate: (persistedState: any, version: number) => { if (version === 0) { persistedState.streamAttenuationEnabled = false; @@ -575,6 +575,13 @@ export const useVoiceStore = create()( persistedState.screenShareConfig.shareAudio = !isElectron(); } } + if (version < 12) { + // Validate screenShareConfig.height after type widening + const cfg = persistedState.screenShareConfig; + if (cfg && typeof cfg.height !== 'number' && cfg.height !== 'native') { + cfg.height = 1080; + } + } return persistedState; }, storage: createJSONStorage(() => localStorage),