bigbluebutton-Github/bigbluebutton-html5/imports/ui/components/breakout-room/container.jsx

70 lines
2.1 KiB
React
Raw Normal View History

2021-11-24 00:41:37 +08:00
import React, { useContext } from 'react';
2018-10-24 01:18:09 +08:00
import { withTracker } from 'meteor/react-meteor-data';
import AudioService from '/imports/ui/components/audio/service';
import AudioManager from '/imports/ui/services/audio-manager';
2018-10-24 01:18:09 +08:00
import BreakoutComponent from './component';
import Service from './service';
2021-09-11 04:48:52 +08:00
import { layoutDispatch } from '../layout/context';
2021-11-24 00:41:37 +08:00
import Auth from '/imports/ui/services/auth';
import { UsersContext } from '/imports/ui/components/components-data/users-context/context';
2018-10-24 01:18:09 +08:00
2021-05-18 04:25:07 +08:00
const BreakoutContainer = (props) => {
2021-09-11 04:48:52 +08:00
const layoutContextDispatch = layoutDispatch();
2021-11-24 00:41:37 +08:00
const usingUsersContext = useContext(UsersContext);
const { users } = usingUsersContext;
const amIPresenter = users[Auth.meetingID][Auth.userID].presenter;
2021-11-24 00:41:37 +08:00
return <BreakoutComponent
amIPresenter={amIPresenter}
{...{ layoutContextDispatch, ...props }}
/>;
2021-05-18 04:25:07 +08:00
};
2018-10-24 01:18:09 +08:00
export default withTracker((props) => {
const {
endAllBreakouts,
requestJoinURL,
extendBreakoutsTime,
sendMessageToAllBreakouts,
isExtendTimeHigherThanMeetingRemaining,
findBreakouts,
getBreakoutRoomUrl,
2018-10-24 01:18:09 +08:00
transferUserToMeeting,
transferToBreakout,
meetingId,
amIModerator,
isUserInBreakoutRoom,
2018-10-24 01:18:09 +08:00
} = Service;
const breakoutRooms = findBreakouts();
2018-10-24 01:18:09 +08:00
const isMicrophoneUser = AudioService.isConnected() && !AudioService.isListenOnly();
2019-06-27 00:29:34 +08:00
const isMeteorConnected = Meteor.status().connected;
const isReconnecting = AudioService.isReconnecting();
const {
setBreakoutAudioTransferStatus,
getBreakoutAudioTransferStatus,
} = AudioService;
2018-10-24 01:18:09 +08:00
return {
...props,
breakoutRooms,
endAllBreakouts,
requestJoinURL,
extendBreakoutsTime,
sendMessageToAllBreakouts,
isExtendTimeHigherThanMeetingRemaining,
getBreakoutRoomUrl,
2018-10-24 01:18:09 +08:00
transferUserToMeeting,
transferToBreakout,
isMicrophoneUser,
meetingId: meetingId(),
amIModerator: amIModerator(),
2019-06-27 00:29:34 +08:00
isMeteorConnected,
isUserInBreakoutRoom,
exitAudio: () => AudioManager.exitAudio(),
isReconnecting,
setBreakoutAudioTransferStatus,
getBreakoutAudioTransferStatus,
2018-10-24 01:18:09 +08:00
};
})(BreakoutContainer);