import React, { useEffect, useState } from 'react'; import { HMSException, selectDevices, selectLocalMediaSettings, selectLocalVideoTrackID, useHMSStore, } from '@100mslive/react-sdk'; import { VideoOnIcon } from '@100mslive/react-icons'; import { PermissionErrorModal } from '../Prebuilt/components/Notifications/PermissionErrorModal'; import { TestContainer, TestFooter } from './components'; import { Flex } from '../Layout'; import { Text } from '../Text'; import { Video } from '../Video'; import { StyledVideoTile } from '../VideoTile'; // @ts-ignore: No implicit any import { DeviceSelector } from './DeviceSelector'; import { DiagnosticsStep, useDiagnostics } from './DiagnosticsContext'; export const VideoTest = () => { const { hmsDiagnostics, updateStep } = useDiagnostics(); const allDevices = useHMSStore(selectDevices); const { videoInput } = allDevices; const trackID = useHMSStore(selectLocalVideoTrackID); const sdkSelectedDevices = useHMSStore(selectLocalMediaSettings); const [error, setError] = useState(); useEffect(() => { hmsDiagnostics?.startCameraCheck().catch(err => { updateStep(DiagnosticsStep.VIDEO, { hasFailed: true }); setError(err); }); }, [hmsDiagnostics, updateStep]); return ( <> {trackID && ( )} Move in front of your camera to make sure it's working. If you don't see your video, try changing the selected camera. If the camera isn't part of your computer, check your settings to make sure your system recognizes it. } selection={sdkSelectedDevices.videoInputDeviceId} onChange={async (deviceId: string) => { hmsDiagnostics?.stopCameraCheck(); hmsDiagnostics?.startCameraCheck(deviceId); }} /> ); };