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

35 lines
1.1 KiB
JavaScript

import React from 'react';
import { withTracker } from 'meteor/react-meteor-data';
import Auth from '/imports/ui/services/auth';
import mapUser from '../../../services/user/mapUser';
import Meetings from '/imports/api/meetings/';
import Users from '/imports/api/users/';
import VideoDock from './component';
import VideoService from '../service';
const VideoDockContainer = ({ children, ...props }) => <VideoDock {...props}>{children}</VideoDock>;
export default withTracker(({sharedWebcam}) => {
const meeting = Meetings.findOne({ meetingId: Auth.meetingID });
const lockCam = meeting.lockSettingsProp ? meeting.lockSettingsProp.disableCam : false;
const userId = Auth.userID;
const user = Users.findOne({ userId });
const userLocked = mapUser(user).isLocked;
const withActiveStreams = (users) => {
const activeFilter = (user) => {
const isLocked = lockCam && user.locked;
return !isLocked && (user.has_stream || (sharedWebcam && user.userId == userId));
};
return users.filter(activeFilter);
}
const users = withActiveStreams(VideoService.getAllUsers());
return {
users,
userId
};
})(VideoDockContainer);