1
0
mirror of https://github.com/pavlobu/deskreen.git synced 2025-05-20 09:20:33 -07:00

move ipcMain handlers to separate folder

This commit is contained in:
Pavlo Buidenkov 2022-05-28 19:49:45 +02:00
parent 77aa921dc7
commit 468bc83c9a
8 changed files with 668 additions and 328 deletions

View File

@ -29,9 +29,9 @@ jobs:
update-aur: update-aur:
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
AUR_PRIVATE_KEY : ${{ secrets.AUR_PRIVATE_KEY }} AUR_PRIVATE_KEY: ${{ secrets.AUR_PRIVATE_KEY }}
AUR_EMAIL : ${{ secrets.AUR_EMAIL }} AUR_EMAIL: ${{ secrets.AUR_EMAIL }}
AUR_NAME : ${{ secrets.AUR_NAME }} AUR_NAME: ${{ secrets.AUR_NAME }}
container: archlinux container: archlinux
steps: steps:
- name: Update package database and packages - name: Update package database and packages

View File

@ -32,7 +32,9 @@
if (process.env.START_HOT) { if (process.env.START_HOT) {
// Dynamically insert the bundled app script in the renderer process // Dynamically insert the bundled app script in the renderer process
const port = process.env.PORT || 1212; const port = process.env.PORT || 1212;
scripts.push(`http://localhost:${port}/dist/mainWindow.renderer.dev.js`); scripts.push(
`http://localhost:${port}/dist/mainWindow.renderer.dev.js`
);
} else { } else {
scripts.push('./dist/mainWindow.renderer.prod.js'); scripts.push('./dist/mainWindow.renderer.prod.js');
} }

View File

@ -1,3 +1 @@
{ {}
}

View File

@ -10,23 +10,17 @@
*/ */
import 'core-js/stable'; import 'core-js/stable';
import 'regenerator-runtime/runtime'; import 'regenerator-runtime/runtime';
import { Display } from 'electron/main';
import path from 'path'; import path from 'path';
import { app, BrowserWindow, ipcMain, screen, shell } from 'electron'; import { app, BrowserWindow, shell } from 'electron';
import settings from 'electron-settings'; import settings from 'electron-settings';
import i18n from './configs/i18next.config'; import i18n from './configs/i18next.config';
import signalingServer from './server'; import signalingServer from './server';
import MenuBuilder from './menu'; import MenuBuilder from './menu';
import initGlobals from './utils/mainProcessHelpers/initGlobals'; import initGlobals from './utils/mainProcessHelpers/initGlobals';
import ConnectedDevicesService from './features/ConnectedDevicesService';
import RoomIDService from './server/RoomIDService';
import SharingSession from './features/SharingSessionService/SharingSession';
import getDeskreenGlobal from './utils/mainProcessHelpers/getDeskreenGlobal';
import AppUpdater from './utils/AppUpdater'; import AppUpdater from './utils/AppUpdater';
import installExtensions from './utils/installExtensions'; import installExtensions from './utils/installExtensions';
import getNewVersionTag from './utils/getNewVersionTag'; import getNewVersionTag from './utils/getNewVersionTag';
import initIpcMainHandlers from './main/ipcMainHandlers';
const v4IPGetter = require('internal-ip').v4;
export default class DeskreenApp { export default class DeskreenApp {
mainWindow: BrowserWindow | null = null; mainWindow: BrowserWindow | null = null;
@ -102,74 +96,7 @@ export default class DeskreenApp {
} }
initIpcMain() { initIpcMain() {
ipcMain.on('client-changed-language', async (_, newLangCode) => { initIpcMainHandlers(this.mainWindow, this.latestVersion, this.appVersion);
i18n.changeLanguage(newLangCode);
await settings.set('appLanguage', newLangCode);
});
ipcMain.handle('get-signaling-server-port', () => {
if (this.mainWindow === null) return;
this.mainWindow.webContents.send(
'sending-port-from-main',
signalingServer.port
);
});
ipcMain.handle('get-all-displays', () => {
return screen.getAllDisplays();
});
ipcMain.handle('get-display-size-by-display-id', (_, displayID: string) => {
const display = screen.getAllDisplays().find((d: Display) => {
return `${d.id}` === displayID;
});
if (display) {
return display.size;
}
return undefined;
});
ipcMain.handle('main-window-onbeforeunload', () => {
const deskreenGlobal = getDeskreenGlobal();
deskreenGlobal.connectedDevicesService = new ConnectedDevicesService();
deskreenGlobal.roomIDService = new RoomIDService();
deskreenGlobal.sharingSessionService.sharingSessions.forEach(
(sharingSession: SharingSession) => {
sharingSession.denyConnectionForPartner();
sharingSession.destroy();
}
);
deskreenGlobal.rendererWebrtcHelpersService.helpers.forEach(
(helperWindow) => {
helperWindow.close();
}
);
deskreenGlobal.sharingSessionService.waitingForConnectionSharingSession = null;
deskreenGlobal.rendererWebrtcHelpersService.helpers.clear();
deskreenGlobal.sharingSessionService.sharingSessions.clear();
});
ipcMain.handle('get-latest-version', () => {
return this.latestVersion;
});
ipcMain.handle('get-current-version', () => {
return this.appVersion;
});
ipcMain.handle('get-local-lan-ip', async () => {
if (
process.env.RUN_MODE === 'dev' ||
process.env.NODE_ENV === 'production'
) {
const ip = await v4IPGetter();
return ip;
}
return '255.255.255.255';
});
} }
async createWindow() { async createWindow() {

View File

@ -0,0 +1,82 @@
import { Display, ipcMain, BrowserWindow, screen } from 'electron';
import settings from 'electron-settings';
import i18n from '../configs/i18next.config';
import ConnectedDevicesService from '../features/ConnectedDevicesService';
import SharingSession from '../features/SharingSessionService/SharingSession';
import RoomIDService from '../server/RoomIDService';
import getDeskreenGlobal from '../utils/mainProcessHelpers/getDeskreenGlobal';
import signalingServer from '../server';
const v4IPGetter = require('internal-ip').v4;
export default function initIpcMainHandlers(
mainWindow: BrowserWindow | null,
latestVersion: string,
appVersion: string
) {
ipcMain.on('client-changed-language', async (_, newLangCode) => {
i18n.changeLanguage(newLangCode);
await settings.set('appLanguage', newLangCode);
});
ipcMain.handle('get-signaling-server-port', () => {
if (mainWindow === null) return;
mainWindow.webContents.send('sending-port-from-main', signalingServer.port);
});
ipcMain.handle('get-all-displays', () => {
return screen.getAllDisplays();
});
ipcMain.handle('get-display-size-by-display-id', (_, displayID: string) => {
const display = screen.getAllDisplays().find((d: Display) => {
return `${d.id}` === displayID;
});
if (display) {
return display.size;
}
return undefined;
});
ipcMain.handle('main-window-onbeforeunload', () => {
const deskreenGlobal = getDeskreenGlobal();
deskreenGlobal.connectedDevicesService = new ConnectedDevicesService();
deskreenGlobal.roomIDService = new RoomIDService();
deskreenGlobal.sharingSessionService.sharingSessions.forEach(
(sharingSession: SharingSession) => {
sharingSession.denyConnectionForPartner();
sharingSession.destroy();
}
);
deskreenGlobal.rendererWebrtcHelpersService.helpers.forEach(
(helperWindow) => {
helperWindow.close();
}
);
deskreenGlobal.sharingSessionService.waitingForConnectionSharingSession = null;
deskreenGlobal.rendererWebrtcHelpersService.helpers.clear();
deskreenGlobal.sharingSessionService.sharingSessions.clear();
});
ipcMain.handle('get-latest-version', () => {
return latestVersion;
});
ipcMain.handle('get-current-version', () => {
return appVersion;
});
ipcMain.handle('get-local-lan-ip', async () => {
if (
process.env.RUN_MODE === 'dev' ||
process.env.NODE_ENV === 'production'
) {
const ip = await v4IPGetter();
return ip;
}
return '255.255.255.255';
});
}

View File

@ -37,9 +37,13 @@
if (process.env.START_HOT) { if (process.env.START_HOT) {
// Dynamically insert the bundled app script in the renderer process // Dynamically insert the bundled app script in the renderer process
const port = process.env.PORT || 1212; const port = process.env.PORT || 1212;
scripts.push(`http://localhost:${port}/dist/peerConnectionHelperRendererWindow.renderer.dev.js`); scripts.push(
`http://localhost:${port}/dist/peerConnectionHelperRendererWindow.renderer.dev.js`
);
} else { } else {
scripts.push('./dist/peerConnectionHelperRendererWindow.renderer.prod.js'); scripts.push(
'./dist/peerConnectionHelperRendererWindow.renderer.prod.js'
);
} }
if (scripts.length) { if (scripts.length) {

View File

@ -268,7 +268,7 @@
"cross-env": "^7.0.0", "cross-env": "^7.0.0",
"css-loader": "^3.6.0", "css-loader": "^3.6.0",
"detect-port": "^1.3.0", "detect-port": "^1.3.0",
"electron-builder": "^22.3.6", "electron-builder": "^23.0.3",
"electron-devtools-installer": "^2.2.4", "electron-devtools-installer": "^2.2.4",
"electron-rebuild": "^3.2.7", "electron-rebuild": "^3.2.7",
"enzyme": "^3.11.0", "enzyme": "^3.11.0",

811
yarn.lock

File diff suppressed because it is too large Load Diff