1
0
mirror of https://github.com/pavlobu/deskreen.git synced 2025-05-16 15:30:20 -07:00
Pavlo Buidenkov b925803d9f better client UI code
huge work done on sharing desktop session
2020-11-22 17:07:01 +02:00

72 lines
2.0 KiB
TypeScript

/* eslint-disable @typescript-eslint/lines-between-class-members */
import path from 'path';
import { BrowserWindow } from 'electron';
type RendererHelperWebcontentsID = number;
export default class RendererWebrtcHelpersService {
helpers: Map<RendererHelperWebcontentsID, BrowserWindow>;
appPath: string;
constructor(_appPath: string) {
this.helpers = new Map<RendererHelperWebcontentsID, BrowserWindow>();
this.appPath = _appPath;
}
createPeerConnectionHelperRenderer() {
let helperRendererWindow: BrowserWindow | null = null;
helperRendererWindow = new BrowserWindow({
show: false,
width: 300,
height: 300,
// x: 2147483647,
// y: 2147483647,
// transparent: true,
// frame: false,
// // skipTaskbar: true,
// focusable: false,
// // parent: mainWindow,
// hasShadow: false,
// titleBarStyle: 'hidden',
webPreferences:
(process.env.NODE_ENV === 'development' ||
process.env.E2E_BUILD === 'true') &&
process.env.ERB_SECURE !== 'true'
? {
nodeIntegration: true,
enableRemoteModule: true,
}
: {
preload: path.join(
this.appPath,
'dist/peerConnectionHelperRendererWindow.renderer.prod.js'
),
enableRemoteModule: true,
},
});
helperRendererWindow.loadURL(
`file://${this.appPath}/peerConnectionHelperRendererWindow.html`
);
helperRendererWindow.webContents.on('did-finish-load', () => {
if (!helperRendererWindow) {
throw new Error('"helperRendererWindow" is not defined');
}
});
helperRendererWindow.on('closed', () => {
helperRendererWindow = null;
});
this.helpers.set(helperRendererWindow.webContents.id, helperRendererWindow);
if (process.env.NODE_ENV === 'dev') {
helperRendererWindow.webContents.toggleDevTools();
}
return helperRendererWindow;
}
}