import React from 'react'; import { Audio } from '@dailyjs/shared/components/Audio'; import { WaitingRoomModal, WaitingRoomNotification, } from '@dailyjs/shared/components/WaitingRoom'; import { useCallState } from '@dailyjs/shared/contexts/CallProvider'; import { useMediaDevices } from '@dailyjs/shared/contexts/MediaDeviceProvider'; import { useParticipants } from '@dailyjs/shared/contexts/ParticipantsProvider'; import { useUIState } from '@dailyjs/shared/contexts/UIStateProvider'; import { useWaitingRoom } from '@dailyjs/shared/contexts/WaitingRoomProvider'; import useJoinSound from '@dailyjs/shared/hooks/useJoinSound'; import { ReactComponent as IconCameraOff } from '@dailyjs/shared/icons/camera-off-md.svg'; import { ReactComponent as IconCameraOn } from '@dailyjs/shared/icons/camera-on-md.svg'; import { ReactComponent as IconLeave } from '@dailyjs/shared/icons/leave-md.svg'; import { ReactComponent as IconMicOff } from '@dailyjs/shared/icons/mic-off-md.svg'; import { ReactComponent as IconMicOn } from '@dailyjs/shared/icons/mic-on-md.svg'; import { ReactComponent as IconPeople } from '@dailyjs/shared/icons/people-md.svg'; import { ReactComponent as IconSettings } from '@dailyjs/shared/icons/settings-md.svg'; import PropTypes from 'prop-types'; import { VideoGrid } from '../VideoGrid'; import { Header } from './Header'; import { Tray, TrayButton } from './Tray'; export const Room = ({ onLeave }) => { const { callObject } = useCallState(); const { setShowDeviceModal, setShowPeopleAside } = useUIState(); const { isCamMuted, isMicMuted } = useMediaDevices(); const { setShowModal, showModal } = useWaitingRoom(); const { localParticipant } = useParticipants(); useJoinSound(); const toggleCamera = (newState) => { if (!callObject) return false; return callObject.setLocalVideo(newState); }; const toggleMic = (newState) => { if (!callObject) return false; return callObject.setLocalAudio(newState); }; return (