bendwidth / frontend / src / videoComponents / HangUpButton.js
HangUpButton.js
Raw
import { useDispatch, useSelector } from "react-redux";
import { updateCallStatus } from "../redux-elements/callStatus";
import pair from "../redux-elements/pair";

const HangUpButton = ({largeFeedEl, smallFeedEl}) => {
    const dispatch = useDispatch();
    const callStatus = useSelector(state => state.callStatus);


    const hangUpCall = () => {
        let pc = callStatus.peerConnection;
        pc.close();
        pc.onicecandidate = null;
        pc.onaddstream = null;
        pc = null;
        if (callStatus.status !== "remoteEnded") {
            dispatch(updateCallStatus(pair('status', 'localEnded')))
        }
        smallFeedEl.current.srcObject = null;
        largeFeedEl.current.srcObject = null;
        
    }

    if (callStatus.status === "complete") {
        return <></>
    }

    return (<div className='button-wrapper end' onClick={hangUpCall}>
                <i className="fa fa-phone"></i>
                <div className="btn-text">Hang Up</div>
            </div>)
}

export default HangUpButton;