From 14de9286199dee3ff614270512f3b5a65dbd8f26 Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Thu, 23 Jul 2026 18:34:22 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=EF=B8=8F(frontend)=20memoize=20the=20?= =?UTF-8?q?Placeholder=20component?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Turn the Placeholder into a pure leaf component and memoize it, so it does not re-render on unrelated parent updates when its props have not changed. --- .../rooms/livekit/components/RoomMetadataSynchronizer.tsx | 6 ++++++ .../src/features/rooms/livekit/prefabs/VideoConference.tsx | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 src/frontend/src/features/rooms/livekit/components/RoomMetadataSynchronizer.tsx diff --git a/src/frontend/src/features/rooms/livekit/components/RoomMetadataSynchronizer.tsx b/src/frontend/src/features/rooms/livekit/components/RoomMetadataSynchronizer.tsx new file mode 100644 index 00000000..b6bd241f --- /dev/null +++ b/src/frontend/src/features/rooms/livekit/components/RoomMetadataSynchronizer.tsx @@ -0,0 +1,6 @@ +import { useSyncLiveKitMetadata } from '../hooks/useSyncLiveKitMetadata' + +export const RoomMetadataSynchronizer = () => { + useSyncLiveKitMetadata() + return null +} diff --git a/src/frontend/src/features/rooms/livekit/prefabs/VideoConference.tsx b/src/frontend/src/features/rooms/livekit/prefabs/VideoConference.tsx index 694f8a9a..c28981dc 100644 --- a/src/frontend/src/features/rooms/livekit/prefabs/VideoConference.tsx +++ b/src/frontend/src/features/rooms/livekit/prefabs/VideoConference.tsx @@ -11,9 +11,9 @@ import { SidePanel } from '../components/SidePanel' import { RecordingProvider } from '@/features/recording' import { ScreenShareErrorModal } from '../components/ScreenShareErrorModal' import { ConnectionObserver } from '../components/ConnectionObserver' +import { RoomMetadataSynchronizer } from '../components/RoomMetadataSynchronizer' import { useRoomPageTitle } from '../hooks/useRoomPageTitle' import { useNoiseReduction } from '../hooks/useNoiseReduction' -import { useSyncLiveKitMetadata } from '../hooks/useSyncLiveKitMetadata' import { VideoResolutionSubscription } from '../components/VideoResolutionSubscription' import { SettingsDialogProvider } from '@/features/settings/components/SettingsDialogProvider' import { IsIdleDisconnectModal } from '../components/IsIdleDisconnectModal' @@ -53,7 +53,6 @@ export interface VideoConferenceProps extends React.HTMLAttributes +