feat(voice): share the voice room across popout trees (#2399)

This commit is contained in:
Hampus authored and GitHub committed 2026-09-02 17:37:04 +02:00
1 parent d8e0c2ec20
commit adb9a689f0
2 files changed
+18 -5

No files matched your search

@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
import {VoiceRoomContext} from '@app/features/voice/components/VoiceRoomContext';
import {type RoomAudioRendererProps, RoomContext} from '@livekit/components-react';
import type {Room} from 'livekit-client';
import type React from 'react';
@@ -43,13 +44,15 @@ export function VoiceLiveKitRoot({room, children}: VoiceLiveKitRootProps): React
}, [components, room]);
if (!room) {
return <>{children}</>;
return <VoiceRoomContext.Provider value={undefined}>{children}</VoiceRoomContext.Provider>;
}
return (
<RoomContext.Provider value={room}>
{children}
{components && <components.RoomAudioRenderer data-flx="app.app.app-wrapper.room-audio-renderer" />}
</RoomContext.Provider>
<VoiceRoomContext.Provider value={room}>
<RoomContext.Provider value={room}>
{children}
{components && <components.RoomAudioRenderer data-flx="app.app.app-wrapper.room-audio-renderer" />}
</RoomContext.Provider>
</VoiceRoomContext.Provider>
);
}
@@ -0,0 +1,10 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
import type {Room} from 'livekit-client';
import {createContext, useContext} from 'react';
export const VoiceRoomContext = createContext<Room | undefined>(undefined);
export function useMaybeVoiceRoom(): Room | undefined {
return useContext(VoiceRoomContext);
}