mirror of
https://github.com/pavlobu/deskreen.git
synced 2025-05-18 08:20:10 -07:00
35 lines
1.3 KiB
TypeScript
35 lines
1.3 KiB
TypeScript
import { ipcRenderer } from 'electron';
|
|
import { IpcEvents } from '../../main/IpcEvents.enum';
|
|
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();
|
|
|
|
ipcRenderer.invoke(IpcEvents.UnmarkRoomIDAsTaken, peerConnection.roomID);
|
|
}
|