bigbluebutton-Github/bigbluebutton-html5/imports/ui/components/video-provider/video-button/container.tsx

47 lines
1.7 KiB
TypeScript
Raw Normal View History

import React, { useContext } from 'react';
import { CameraSettingsDropdownInterface } from 'bigbluebutton-html-plugin-sdk';
import { updateSettings } from '/imports/ui/components/settings/service';
2024-04-20 04:34:43 +08:00
import { PluginsContext } from '/imports/ui/components/components-data/plugin-context/context';
import useUserChangedLocalSettings from '/imports/ui/services/settings/hooks/useUserChangedLocalSettings';
import {
useDisableReason, useExitVideo, useHasVideoStream, useStatus, useStopVideo,
2024-06-17 19:54:03 +08:00
} from '/imports/ui/components/video-provider/hooks';
import JoinVideoButton from './component';
2024-04-20 04:34:43 +08:00
const JoinVideoOptionsContainer: React.FC = () => {
2024-04-20 04:34:43 +08:00
const setLocalSettings = useUserChangedLocalSettings();
const {
pluginsExtensibleAreasAggregatedState,
} = useContext(PluginsContext);
let cameraSettingsDropdownItems: CameraSettingsDropdownInterface[] = [];
2024-04-20 04:34:43 +08:00
if (pluginsExtensibleAreasAggregatedState.cameraSettingsDropdownItems) {
cameraSettingsDropdownItems = [
...pluginsExtensibleAreasAggregatedState.cameraSettingsDropdownItems,
];
}
const hasVideoStream = useHasVideoStream();
const disableReason = useDisableReason();
const status = useStatus();
const exitVideo = useExitVideo();
const stopVideo = useStopVideo();
const videoConnecting = status === 'videoConnecting';
2024-04-20 04:34:43 +08:00
return (
<JoinVideoButton
cameraSettingsDropdownItems={cameraSettingsDropdownItems}
hasVideoStream={hasVideoStream}
updateSettings={updateSettings}
disableReason={disableReason}
status={status}
setLocalSettings={setLocalSettings}
exitVideo={exitVideo}
stopVideo={stopVideo}
videoConnecting={videoConnecting}
2024-04-20 04:34:43 +08:00
/>
);
};
export default JoinVideoOptionsContainer;