mirror of
https://github.com/pavlobu/deskreen.git
synced 2025-05-28 05:10:09 -07:00
use more Invoke in connected device list drawer
This commit is contained in:
parent
78318ce10b
commit
f191be36c9
@ -1,6 +1,6 @@
|
||||
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
||||
/* eslint-disable react/destructuring-assignment */
|
||||
import { remote } from 'electron';
|
||||
import { remote, ipcRenderer } from 'electron';
|
||||
import React, { useEffect, useState, useCallback } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import {
|
||||
@ -21,6 +21,7 @@ import DeviceInfoCallout from './DeviceInfoCallout';
|
||||
import SharingSourcePreviewCard from './SharingSourcePreviewCard';
|
||||
import isWithReactRevealAnimations from '../utils/isWithReactRevealAnimations';
|
||||
import isProduction from '../utils/isProduction';
|
||||
import { IpcEvents } from '../main/IpcEvents.enum';
|
||||
|
||||
const sharingSessionService = remote.getGlobal(
|
||||
'sharingSessionService'
|
||||
@ -31,17 +32,6 @@ const connectedDevicesService = remote.getGlobal(
|
||||
|
||||
const Fade = require('react-reveal/Fade');
|
||||
|
||||
const disconnectPeerAndDestroySharingSessionBySessionID = (
|
||||
sharingSessionID: string
|
||||
) => {
|
||||
const sharingSession = sharingSessionService.sharingSessions.get(
|
||||
sharingSessionID
|
||||
);
|
||||
sharingSession?.disconnectByHostMachineUser();
|
||||
sharingSession?.destroy();
|
||||
sharingSessionService.sharingSessions.delete(sharingSessionID);
|
||||
};
|
||||
|
||||
interface ConnectedDevicesListDrawerProps {
|
||||
isOpen: boolean;
|
||||
handleToggle: () => void;
|
||||
@ -88,13 +78,17 @@ export default function ConnectedDevicesListDrawer(
|
||||
(d: Device) => d.id === id
|
||||
);
|
||||
if (!device) return;
|
||||
disconnectPeerAndDestroySharingSessionBySessionID(device.sharingSessionID);
|
||||
ipcRenderer.invoke(
|
||||
IpcEvents.DisconnectPeerAndDestroySharingSessionBySessionID,
|
||||
device.sharingSessionID
|
||||
);
|
||||
connectedDevicesService.removeDeviceByID(id);
|
||||
}, []);
|
||||
|
||||
const handleDisconnectAll = useCallback(() => {
|
||||
connectedDevicesService.devices.forEach((device: Device) => {
|
||||
disconnectPeerAndDestroySharingSessionBySessionID(
|
||||
ipcRenderer.invoke(
|
||||
IpcEvents.DisconnectPeerAndDestroySharingSessionBySessionID,
|
||||
device.sharingSessionID
|
||||
);
|
||||
});
|
||||
|
@ -70,6 +70,7 @@ const ScanQRStep: React.FC = () => {
|
||||
setRoomID(
|
||||
sharingSessionService.waitingForConnectionSharingSession.roomID
|
||||
);
|
||||
clearInterval(thisInterval);
|
||||
}
|
||||
}, 1000);
|
||||
|
||||
|
@ -7,4 +7,5 @@ export enum IpcEvents {
|
||||
ResetWaitingForConnectionSharingSession = 'reset-waiting-for-connection-sharing-session',
|
||||
SetDeviceConnectedStatus = 'set-device-connected-status',
|
||||
GetSourceDisplayIDByDesktopCapturerSourceID = 'get-source-display-id-by-desktop-capturer-source-id',
|
||||
DisconnectPeerAndDestroySharingSessionBySessionID = 'disconnect-peer-and-destroy-sharing-session-by-session-id',
|
||||
}
|
||||
|
@ -144,4 +144,18 @@ export default function initIpcMainHandlers(
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
ipcMain.handle(
|
||||
IpcEvents.DisconnectPeerAndDestroySharingSessionBySessionID,
|
||||
(_, sessionId) => {
|
||||
const sharingSession = getDeskreenGlobal().sharingSessionService.sharingSessions.get(
|
||||
sessionId
|
||||
);
|
||||
sharingSession?.disconnectByHostMachineUser();
|
||||
sharingSession?.destroy();
|
||||
getDeskreenGlobal().sharingSessionService.sharingSessions.delete(
|
||||
sessionId
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user