diff --git a/.gitignore b/.gitignore index 595326f..30ae65c 100644 --- a/.gitignore +++ b/.gitignore @@ -47,4 +47,5 @@ vitest.config.*.timestamp* .history build -out \ No newline at end of file +out +pnpm-lock.yaml \ No newline at end of file diff --git a/README.md b/README.md index 69cef94..bf71e10 100644 --- a/README.md +++ b/README.md @@ -87,12 +87,14 @@ app.whenReady().then(() => { setupWindowRouter({ preload: join(__dirname, '../preload/index.js'), mainWindow, - setupWindowHooks: (browserWindow) => { + setupWindowHooks: (browserWindow, context) => { browserWindow.webContents.setWindowOpenHandler((details) => { shell.openExternal(details.url); return { action: 'deny' }; }); + console.log(context); // To get the window config and id + if (process.env['ELECTRON_RENDERER_URL']) { browserWindow.loadURL(process.env['ELECTRON_RENDERER_URL']); } else { diff --git a/src/main/setupWindowRouter.ts b/src/main/setupWindowRouter.ts index 85e7bca..904fc31 100644 --- a/src/main/setupWindowRouter.ts +++ b/src/main/setupWindowRouter.ts @@ -17,6 +17,11 @@ type Windows = Record< } >; +export type WindowHooksContext = { + id?: string; + windowConfig?: PublicWindowConfig; +}; + export function setupWindowRouter({ preload, mainWindow, @@ -26,7 +31,7 @@ export function setupWindowRouter({ preload: string; mainWindow: BrowserWindow; windows?: Windows; - setupWindowHooks?: (browserWindow: BrowserWindow) => unknown; + setupWindowHooks?: (browserWindow: BrowserWindow, context?: WindowHooksContext) => unknown; }) { const windowMap = new Map(); const windowConfigsFromRenderer = new Map(); @@ -59,7 +64,10 @@ export function setupWindowRouter({ ...constructorOptions?.webPreferences, }, }); - setupWindowHooks?.(newWindow); + setupWindowHooks?.(newWindow, { + id: arg.id, + windowConfig: windowConfigFromArg, + }); windowConfig?.extraWindowHooks?.(newWindow); newWindow.on('ready-to-show', () => { newWindow.webContents.send(