bigbluebutton-Github/bigbluebutton-html5/imports/ui/components/video-preview/container.jsx

54 lines
1.9 KiB
React
Raw Normal View History

2018-11-07 07:10:56 +08:00
import React from 'react';
import { withModalMounter } from '/imports/ui/components/modal/service';
import { withTracker } from 'meteor/react-meteor-data';
import deviceInfo from '/imports/utils/deviceInfo';
import Users from '/imports/api/users';
import Meetings from '/imports/api/meetings';
import Auth from '/imports/ui/services/auth';
2018-11-07 07:10:56 +08:00
import Service from './service';
import VideoPreview from './component';
2019-11-28 21:13:06 +08:00
import VideoService from '../video-provider/service';
2018-11-07 07:10:56 +08:00
const VideoPreviewContainer = props => <VideoPreview {...props} />;
const ROLE_MODERATOR = Meteor.settings.public.user.role_moderator;
const isCamLocked = () => {
const meeting = Meetings.findOne({ meetingId: Auth.meetingID },
{ fields: { 'lockSettingsProps.disableCam': 1 } });
const user = Users.findOne({ meetingId: Auth.meetingID, userId: Auth.userID },
{ fields: { locked: 1, role: 1 } });
if (meeting.lockSettingsProps !== undefined) {
if (user.locked && user.role !== ROLE_MODERATOR) {
return meeting.lockSettingsProps.disableCam;
}
}
return false;
};
export default withModalMounter(withTracker(({ mountModal, fromInterface }) => ({
startSharing: (deviceId) => {
2018-11-07 07:10:56 +08:00
mountModal(null);
2019-11-28 00:19:09 +08:00
VideoService.joinVideo(deviceId);
2018-11-07 07:10:56 +08:00
},
stopSharing: (deviceId) => {
mountModal(null);
2020-03-12 03:42:53 +08:00
if (deviceId) {
const stream = VideoService.getMyStream(deviceId);
if (stream) VideoService.stopVideo(stream);
} else {
VideoService.exitVideo();
}
},
sharedDevices: VideoService.getSharedDevices(),
isCamLocked: isCamLocked(),
closeModal: () => mountModal(null),
2018-11-07 07:10:56 +08:00
changeWebcam: deviceId => Service.changeWebcam(deviceId),
webcamDeviceId: Service.webcamDeviceId(),
2019-04-09 06:07:26 +08:00
changeProfile: profileId => Service.changeProfile(profileId),
hasMediaDevices: deviceInfo.hasMediaDevices,
2019-12-19 01:44:56 +08:00
skipVideoPreview: VideoService.getSkipVideoPreview(fromInterface),
2020-03-12 03:42:53 +08:00
hasVideoStream: VideoService.hasVideoStream(),
2018-11-07 07:10:56 +08:00
}))(VideoPreviewContainer));