-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpreload.js
More file actions
25 lines (24 loc) · 1.21 KB
/
preload.js
File metadata and controls
25 lines (24 loc) · 1.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
const { contextBridge, ipcRenderer } = require("electron");
contextBridge.exposeInMainWorld("api", {
getWallpapers: () => ipcRenderer.invoke("get-wallpapers"),
setWallpaper: (imageName) => ipcRenderer.invoke("set-wallpaper", imageName),
getCurrentWallpaper: () => ipcRenderer.invoke("get-current-wallpaper"),
hideWindow: () => ipcRenderer.send("hide-window"),
getImageAsBase64: (fullPath) =>
ipcRenderer.invoke("get-image-as-base64", fullPath),
getThumbnail: (imageName) => ipcRenderer.invoke("get-thumbnail", imageName),
openWallpapersFolder: () => ipcRenderer.invoke("open-wallpapers-folder"),
getAppVersion: () => ipcRenderer.invoke("get-app-version"),
openExternalLink: (url) => ipcRenderer.invoke("open-external-link", url),
toggleSettings: () => ipcRenderer.send("toggle-settings"),
getSettings: () => ipcRenderer.invoke("get-settings"),
saveSettings: (settings) => ipcRenderer.invoke("save-settings", settings),
getThemes: () => ipcRenderer.invoke("get-themes"),
onThemeUpdated: (callback) => {
const listener = (event, ...args) => callback(...args);
ipcRenderer.on("theme-updated", listener);
return () => {
ipcRenderer.removeListener("theme-updated", listener);
};
},
});