23 lines
1.3 KiB
TypeScript
23 lines
1.3 KiB
TypeScript
import { contextBridge, ipcRenderer } from "electron"
|
|
|
|
contextBridge.exposeInMainWorld("electronAPI", {
|
|
focusWindow: () => ipcRenderer.send("window:focus"),
|
|
setTheme: (dark: boolean) => ipcRenderer.send("window:setTheme", dark),
|
|
minimizeWindow: () => ipcRenderer.send("window:minimize"),
|
|
maximizeWindow: () => ipcRenderer.send("window:maximize"),
|
|
closeWindow: () => ipcRenderer.send("window:close"),
|
|
isMaximized: () => ipcRenderer.invoke("window:isMaximized"),
|
|
onMaximizeChange: (callback: (maximized: boolean) => void) => {
|
|
ipcRenderer.on("window:maximize-change", (_event, value) => callback(value))
|
|
},
|
|
openFileDialog: (filters: { name: string; extensions: string[] }[]) =>
|
|
ipcRenderer.invoke("dialog:openFile", filters),
|
|
saveFileDialog: (defaultName: string, filters: { name: string; extensions: string[] }[]) =>
|
|
ipcRenderer.invoke("dialog:saveFile", defaultName, filters),
|
|
readFile: (path: string) => ipcRenderer.invoke("file:read", path),
|
|
writeFile: (path: string, data: string) => ipcRenderer.invoke("file:write", path, data),
|
|
readImage: (path: string) => ipcRenderer.invoke("file:readImage", path),
|
|
writeBinaryFile: (path: string, base64: string) => ipcRenderer.invoke("file:writeBinary", path, base64),
|
|
getAppPath: () => ipcRenderer.invoke("app:getPath"),
|
|
})
|