| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | import React, { useEffect, useRef } from 'react'; |
| | import './style.css'; |
| | import { TbPhoneCall } from 'react-icons/tb'; |
| | import { MdCallEnd } from 'react-icons/md'; |
| | import { TbMessageChatbot, TbPower } from 'react-icons/tb'; |
| | import IconButton from '../Common/IconButton'; |
| |
|
| | |
| | import { playAudios } from '../../utils/audioUtils'; |
| |
|
| | const CallView = ( {isRecording, isPlaying, audioPlayer, handleStopCall, handleContinueCall, audioQueue, setIsPlaying, handleDisconnect, setIsCallView} ) => { |
| | const audioContextRef = useRef(null); |
| |
|
| | useEffect(() => { |
| | if (isPlaying) { |
| | playAudios(audioContextRef, audioPlayer, audioQueue, setIsPlaying); |
| | } |
| | }, [isPlaying]); |
| | |
| | return ( |
| | <> |
| | <div className='call-container'> |
| | <audio ref={audioPlayer} className="audio-player"><source src="" type="audio/mp3" /></audio> |
| | <div className={`sound-wave ${isRecording ? '' : 'stop-animation'}`}> |
| | <span></span><span></span><span></span><span></span><span></span><span></span> |
| | </div> |
| | <IconButton Icon={MdCallEnd} className={`icon-red ${isRecording ? '' : 'hidden'}`} bgcolor="red" onClick={handleStopCall} /> |
| | <IconButton Icon={TbPhoneCall} className={`icon-green ${isRecording ? 'hidden' : ''}`} bgcolor="green" onClick={handleContinueCall} /> |
| | </div> |
| | <div className="options-container"> |
| | <IconButton Icon={TbPower} className="icon-red" onClick={handleDisconnect} /> |
| | <IconButton Icon={TbMessageChatbot} className="icon-green" onClick={() => setIsCallView(false)} /> |
| | </div> |
| | </> |
| | ) |
| | } |
| |
|
| | export default CallView |
| |
|