stoat-for-desktop/src/world/window.ts

28 lines
882 B
TypeScript

import { contextBridge, ipcRenderer } from "electron";
import { version } from "../../package.json";
contextBridge.exposeInMainWorld("native", {
versions: {
node: () => process.versions.node,
chrome: () => process.versions.chrome,
electron: () => process.versions.electron,
desktop: () => version,
},
minimise: () => ipcRenderer.send("minimise"),
maximise: () => ipcRenderer.send("maximise"),
close: () => ipcRenderer.send("close"),
setBadgeCount: (count: number) => ipcRenderer.send("setBadgeCount", count),
// Wrapped in braces to return void
onceScreenPicker: (
onScreenPick: (sources: { idx: number; name: string }[]) => void,
) => {
ipcRenderer.once("screenPicker", (_, sources) => onScreenPick(sources));
},
screenPickerCallback: (idx: number, audio: boolean) =>
ipcRenderer.send("screenPickerCallback", idx, audio),
});