-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpreload.js
27 lines (24 loc) · 1.02 KB
/
preload.js
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
26
27
const { contextBridge, ipcRenderer } = require("electron");
// 이벤트 리스너를 저장할 변수
let closeCallback = null;
// 이벤트 리스너 설정
ipcRenderer.on("window:before-close", () => {
if (closeCallback) closeCallback();
});
contextBridge.exposeInMainWorld("WindowControls", {
closeWindow: () => ipcRenderer.invoke("window:close"),
minimizeWindow: () => ipcRenderer.invoke("window:minimize"),
maximizeWindow: () => ipcRenderer.invoke("window:maximize"),
isMaximized: () => ipcRenderer.invoke("window:isMaximized"),
onBeforeClose: (callback) => {
closeCallback = callback;
},
getWindowSize: () => ipcRenderer.invoke("window:getSize"),
onWindowResize: (callback) => ipcRenderer.on("window:resize", callback),
});
contextBridge.exposeInMainWorld("electronAPI", {
logout: () => ipcRenderer.invoke("window:logout"),
handleOAuth: (provider) => ipcRenderer.invoke("oauth:login", provider),
onOAuthCallback: (callback) =>
ipcRenderer.on("oauth:callback", (event, data) => callback(data)),
});