1
0
mirror of https://github.com/pavlobu/deskreen.git synced 2025-05-19 08:50:17 -07:00
deskreen/app/features/PeerConnection/handleSelfDestroy.ts
2021-01-17 23:45:59 +02:00

32 lines
1.2 KiB
TypeScript

import SharingSessionStatusEnum from '../SharingSessionService/SharingSessionStatusEnum';
import NullSimplePeer from './NullSimplePeer';
import NullUser from './NullUser';
export default function handleSelfDestroy(peerConnection: PeerConnection) {
peerConnection.partner = NullUser;
peerConnection.connectedDevicesService.removeDeviceByID(
peerConnection.partnerDeviceDetails.id
);
if (peerConnection.peer !== NullSimplePeer) {
peerConnection.peer.destroy();
}
if (peerConnection.localStream) {
peerConnection.localStream.getTracks().forEach((track) => {
track.stop();
});
peerConnection.localStream = null;
}
const sharingSession = peerConnection.sharingSessionService.sharingSessions.get(
peerConnection.sharingSessionID
);
sharingSession?.setStatus(SharingSessionStatusEnum.DESTROYED);
sharingSession?.destroy();
peerConnection.sharingSessionService.sharingSessions.delete(
peerConnection.sharingSessionID
);
peerConnection.onDeviceConnectedCallback = () => {};
peerConnection.isCallStarted = false;
peerConnection.socket.disconnect();
peerConnection.roomIDService.unmarkRoomIDAsTaken(peerConnection.roomID);
}