From c1c2d0260d67977bd085626e1a19acc5943f68d5 Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Fri, 22 Aug 2025 13:05:50 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F(frontend)=20refactor=20setti?= =?UTF-8?q?ngs=20from=20context=20to=20valtio=20global=20store?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace settings context provider with valtio global store for easier access outside room components and better long-term maintainability. Prepares for upcoming prejoin screen settings access by making settings globally available without React context limitations. --- .../controls/Device/SettingsButton.tsx | 7 +-- .../controls/Options/SettingsMenuItem.tsx | 6 +- .../controls/SettingsDialogContext.tsx | 57 ------------------- .../livekit/prefabs/ControlBar/ControlBar.tsx | 15 ++--- .../prefabs/ControlBar/MobileControlBar.tsx | 6 +- .../rooms/livekit/prefabs/VideoConference.tsx | 2 + .../components/SettingsDialogExtended.tsx | 4 +- .../components/SettingsDialogProvider.tsx | 20 +++++++ .../settings/hook/useSettingsDialog.ts | 20 +++++++ src/frontend/src/stores/settings.ts | 12 ++++ 10 files changed, 70 insertions(+), 79 deletions(-) delete mode 100644 src/frontend/src/features/rooms/livekit/components/controls/SettingsDialogContext.tsx create mode 100644 src/frontend/src/features/settings/components/SettingsDialogProvider.tsx create mode 100644 src/frontend/src/features/settings/hook/useSettingsDialog.ts create mode 100644 src/frontend/src/stores/settings.ts diff --git a/src/frontend/src/features/rooms/livekit/components/controls/Device/SettingsButton.tsx b/src/frontend/src/features/rooms/livekit/components/controls/Device/SettingsButton.tsx index b1a96fc0..7998d709 100644 --- a/src/frontend/src/features/rooms/livekit/components/controls/Device/SettingsButton.tsx +++ b/src/frontend/src/features/rooms/livekit/components/controls/Device/SettingsButton.tsx @@ -1,8 +1,8 @@ -import { useSettingsDialog } from '../SettingsDialogContext' import { Button } from '@/primitives' import { RiSettings3Line } from '@remixicon/react' import { useTranslation } from 'react-i18next' import { SettingsDialogExtendedKey } from '@/features/settings/type' +import { useSettingsDialog } from '@/features/settings/hook/useSettingsDialog' export const SettingsButton = ({ settingTab, @@ -12,7 +12,7 @@ export const SettingsButton = ({ onPress?: () => void }) => { const { t } = useTranslation('rooms', { keyPrefix: 'selectDevice' }) - const { setDialogOpen, setDefaultSelectedKey } = useSettingsDialog() + const { openSettingsDialog } = useSettingsDialog() return (