NeahNew/electron/preload.js
2025-05-05 17:09:36 +02:00

24 lines
940 B
JavaScript

const { contextBridge, ipcRenderer } = require('electron');
// Expose protected methods that allow the renderer process to use
// the ipcRenderer without exposing the entire object
contextBridge.exposeInMainWorld('electron', {
// Window control methods
windowControl: {
minimize: () => ipcRenderer.invoke('minimize-window'),
maximize: () => ipcRenderer.invoke('maximize-window'),
close: () => ipcRenderer.invoke('close-window'),
},
// Window state listeners
windowState: {
onMaximized: (callback) => ipcRenderer.on('window-maximized', callback),
onUnmaximized: (callback) => ipcRenderer.on('window-unmaximized', callback),
removeMaximizedListener: () => ipcRenderer.removeAllListeners('window-maximized'),
removeUnmaximizedListener: () => ipcRenderer.removeAllListeners('window-unmaximized'),
},
// App info
appInfo: {
isElectron: true,
version: process.env.npm_package_version,
}
});