Allow the renderer to close, minimize and maximize the window (for desktop Electron)
NPM link: @el3um4s/ipc-for-electron-window-controls
Use @el3um4s/ipc-for-electron and @el3um4s/renderer-for-electron-window-controls to allow communication between Electron and a web page
To use the package in a project:
npm i @el3um4s/ipc-for-electron @el3um4s/ipc-for-electron-window-controls @el3um4s/renderer-for-electron-window-controls
Then the preload.ts
file:
import { generateContextBridge } from "@el3um4s/ipc-for-electron";
import windowControls from "@el3um4s/ipc-for-electron-window-controls";
const listAPI = [windowControls];
generateContextBridge(windowControls);
In the renderer file:
import windowControls from "@el3um4s/renderer-for-electron-window-controls";
windowControls.minimize();
windowControls.maximize();
windowControls.unmaximize();
windowControls.close();
In the renderer you can use:
globalThis.ipc.windowControls.send("minimize", null);
globalThis.ipc.windowControls.send("maximize", null);
globalThis.ipc.windowControls.send("unmaximize", null);
globalThis.ipc.windowControls.send("close", null);
minimize
- Minimize the windowmaximize
- Maximize the windowunmaximize
- Unmaximize the windowclose
- Close the window
minimize = (options: { apiKey?: string }): void
example:
import windowControls from "@el3um4s/renderer-for-electron-window-controls";
windowControls.minimize();
maximize = (options: { apiKey?: string }): void
example:
import windowControls from "@el3um4s/renderer-for-electron-window-controls";
windowControls.maximize({ apiKey: "my-api-key" });
unmaximize = (options: { apiKey?: string }): void
example:
import windowControls from "@el3um4s/renderer-for-electron-window-controls";
windowControls.unmaximize();
close = (options: { apiKey?: string }): void
example:
import windowControls from "@el3um4s/renderer-for-electron-window-controls";
windowControls.close();
DefaultApiKey
type DefaultApiKey = "ipc";