feat: add keep alive overlay for livekit view

pull/105/merge
moonrailgun 2 years ago
parent 8eca54a77b
commit 3a56d13da7

@ -77,3 +77,4 @@ export {
} from '@/components/JumpToButton'; } from '@/components/JumpToButton';
export { NoData } from '@/components/NoData'; export { NoData } from '@/components/NoData';
export { NotFound } from '@/components/NotFound'; export { NotFound } from '@/components/NotFound';
export { withKeepAliveOverlay } from '@/components/KeepAliveOverlay/withKeepAliveOverlay';

@ -1,4 +1,5 @@
import { showErrorToasts, useEvent } from '@capital/common'; import { showErrorToasts, useEvent } from '@capital/common';
import { withKeepAliveOverlay } from '@capital/component';
import React, { useState } from 'react'; import React, { useState } from 'react';
import type { LocalUserChoices } from '@livekit/components-react'; import type { LocalUserChoices } from '@livekit/components-react';
import { PreJoinView } from './lib/PreJoinView'; import { PreJoinView } from './lib/PreJoinView';
@ -10,7 +11,7 @@ interface LivekitViewProps {
roomName: string; roomName: string;
url: string; url: string;
} }
export const LivekitView: React.FC<LivekitViewProps> = React.memo((props) => { const _LivekitView: React.FC<LivekitViewProps> = React.memo((props) => {
const [preJoinChoices, setPreJoinChoices] = useState< const [preJoinChoices, setPreJoinChoices] = useState<
LocalUserChoices | undefined LocalUserChoices | undefined
>(undefined); >(undefined);
@ -54,4 +55,8 @@ export const LivekitView: React.FC<LivekitViewProps> = React.memo((props) => {
</LivekitContainer> </LivekitContainer>
); );
}); });
LivekitView.displayName = 'LivekitView'; _LivekitView.displayName = 'LivekitView';
export const LivekitView = withKeepAliveOverlay(_LivekitView, {
cacheId: (props) => props.url,
});

@ -10,7 +10,11 @@ export const LivekitGroupPanel: React.FC = React.memo(() => {
return ( return (
<GroupPanelContainer groupId={groupId} panelId={panelId}> <GroupPanelContainer groupId={groupId} panelId={panelId}>
<LivekitView roomName={roomName} url={url} /> <LivekitView
style={{ width: '100%', height: '100%' }}
roomName={roomName}
url={url}
/>
</GroupPanelContainer> </GroupPanelContainer>
); );
}); });

Loading…
Cancel
Save