mirror of
https://github.com/pavlobu/deskreen.git
synced 2025-05-31 23:00: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 @typescript-eslint/ban-ts-comment */
|
||||||
/* eslint-disable react/destructuring-assignment */
|
/* eslint-disable react/destructuring-assignment */
|
||||||
import { remote } from 'electron';
|
import { remote, ipcRenderer } from 'electron';
|
||||||
import React, { useEffect, useState, useCallback } from 'react';
|
import React, { useEffect, useState, useCallback } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import {
|
import {
|
||||||
@ -21,6 +21,7 @@ import DeviceInfoCallout from './DeviceInfoCallout';
|
|||||||
import SharingSourcePreviewCard from './SharingSourcePreviewCard';
|
import SharingSourcePreviewCard from './SharingSourcePreviewCard';
|
||||||
import isWithReactRevealAnimations from '../utils/isWithReactRevealAnimations';
|
import isWithReactRevealAnimations from '../utils/isWithReactRevealAnimations';
|
||||||
import isProduction from '../utils/isProduction';
|
import isProduction from '../utils/isProduction';
|
||||||
|
import { IpcEvents } from '../main/IpcEvents.enum';
|
||||||
|
|
||||||
const sharingSessionService = remote.getGlobal(
|
const sharingSessionService = remote.getGlobal(
|
||||||
'sharingSessionService'
|
'sharingSessionService'
|
||||||
@ -31,17 +32,6 @@ const connectedDevicesService = remote.getGlobal(
|
|||||||
|
|
||||||
const Fade = require('react-reveal/Fade');
|
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 {
|
interface ConnectedDevicesListDrawerProps {
|
||||||
isOpen: boolean;
|
isOpen: boolean;
|
||||||
handleToggle: () => void;
|
handleToggle: () => void;
|
||||||
@ -88,13 +78,17 @@ export default function ConnectedDevicesListDrawer(
|
|||||||
(d: Device) => d.id === id
|
(d: Device) => d.id === id
|
||||||
);
|
);
|
||||||
if (!device) return;
|
if (!device) return;
|
||||||
disconnectPeerAndDestroySharingSessionBySessionID(device.sharingSessionID);
|
ipcRenderer.invoke(
|
||||||
|
IpcEvents.DisconnectPeerAndDestroySharingSessionBySessionID,
|
||||||
|
device.sharingSessionID
|
||||||
|
);
|
||||||
connectedDevicesService.removeDeviceByID(id);
|
connectedDevicesService.removeDeviceByID(id);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const handleDisconnectAll = useCallback(() => {
|
const handleDisconnectAll = useCallback(() => {
|
||||||
connectedDevicesService.devices.forEach((device: Device) => {
|
connectedDevicesService.devices.forEach((device: Device) => {
|
||||||
disconnectPeerAndDestroySharingSessionBySessionID(
|
ipcRenderer.invoke(
|
||||||
|
IpcEvents.DisconnectPeerAndDestroySharingSessionBySessionID,
|
||||||
device.sharingSessionID
|
device.sharingSessionID
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
@ -70,6 +70,7 @@ const ScanQRStep: React.FC = () => {
|
|||||||
setRoomID(
|
setRoomID(
|
||||||
sharingSessionService.waitingForConnectionSharingSession.roomID
|
sharingSessionService.waitingForConnectionSharingSession.roomID
|
||||||
);
|
);
|
||||||
|
clearInterval(thisInterval);
|
||||||
}
|
}
|
||||||
}, 1000);
|
}, 1000);
|
||||||
|
|
||||||
|
@ -7,4 +7,5 @@ export enum IpcEvents {
|
|||||||
ResetWaitingForConnectionSharingSession = 'reset-waiting-for-connection-sharing-session',
|
ResetWaitingForConnectionSharingSession = 'reset-waiting-for-connection-sharing-session',
|
||||||
SetDeviceConnectedStatus = 'set-device-connected-status',
|
SetDeviceConnectedStatus = 'set-device-connected-status',
|
||||||
GetSourceDisplayIDByDesktopCapturerSourceID = 'get-source-display-id-by-desktop-capturer-source-id',
|
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