|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
|
|