steep-balloon-41261
09/05/2023, 8:53 PMkind-art-87090
09/05/2023, 8:53 PMreturn (
<div id="root-wrapper">
<div id="root">
<ThemeProvider theme={theme}>
<LiveKit
isCreator={sessionState.isCreator}
audio={sessionState.audio}
video={sessionState.video}
/>
</ThemeProvider>
</div>
</div>
);kind-art-87090
09/05/2023, 8:54 PM<LiveKit /> uses <LiveKitRoom /> react component like this
return (
// nextjs example <https://github.com/livekit/components-js/blob/main/examples/nextjs>
<LiveKitRoom
token={
isCreator && sessionState
? sessionState?.creatorData?.accessToken
: sessionState.fanData?.accessToken
}
serverUrl={process.env.NEXT_PUBLIC_LIVE_KIT_URL}
connect={sessionState.isLive || !isCreator}
audio={isCreator}
video={isCreator}
room={room}
onConnected={() => {
room.on(RoomEvent.ParticipantConnected, () => {
event("livestream_connected", {
label: room.name,
});
updateParticipantSize(room);
});
room.on(RoomEvent.ParticipantDisconnected, () => {
event("livestream_disconnected", {
label: room.name,
});
updateParticipantSize(room);
});
room.on(RoomEvent.DataReceived, (data) => {
const decodedData = decoder.decode(data);
dispatch(addStreamComment(decodedData));
});
}}
>
<Stack
sx={videoContainerStyle}
justifyContent="center"
alignItems="center"
>
<RoomAudioRenderer />
<Stage video={video} room={room} />
{!sessionState.isLive && isCreator && (
<PersonIcon sx={{ color: "white", fontSize: 175 }} />
)}
</Stack>
{sessionState.displaySettings && (
<ManageStream createMode={false} />
)}
<Header
isCreator={sessionState.isCreator}
isLive={sessionState.isLive}
room={room}
/>
<ActionBar isCreator={sessionState.isCreator} room={room} />
{!sessionState.isCreator && (
<>
{!audioEnabled && isMobileDevice() && (
<AudioModal
onClick={() => handleOnEnableAudioClick()}
/>
)}
<TipModal
room={room}
displayTip={sessionState.displayTip}
setDisplayToast={setDisplayToast}
/>
{sessionState.displayCommentTipModal && (
<CommentTipModal
room={room}
displayInfo={sessionState.displayCommentTipModal}
/>
)}
{displayToast && (
<TipToast
timeLeft={timeTipToast}
setTimeLeft={setTimeTipToast}
/>
)}
</>
)}
</LiveKitRoom>
);kind-art-87090
09/05/2023, 8:55 PM#root-wrapper {
width: 50vw;
height: 85vh;
min-width: 320px;
max-width: 600px;
min-height: 568px;
max-height: 1133px;
position: relative;
}magnificent-art-43333
09/05/2023, 10:33 PMpolite-kilobyte-67570
09/06/2023, 8:50 AMkind-art-87090
09/06/2023, 10:12 PMeager-zoo-16408
09/07/2023, 7:24 AMvideo {
height: 100%;
}eager-zoo-16408
09/11/2023, 8:41 AM