-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpreload.js
More file actions
24 lines (21 loc) · 1.52 KB
/
preload.js
File metadata and controls
24 lines (21 loc) · 1.52 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
const { contextBridge, ipcRenderer, shell } = require('electron');
contextBridge.exposeInMainWorld('api', {
saveApiKey: (key) => ipcRenderer.invoke('save-api-key', key),
getSettings: () => ipcRenderer.invoke('get-settings'),
saveSettings: (settings) => ipcRenderer.invoke('save-settings', settings),
getCurrentModel: () => ipcRenderer.invoke('get-current-model'),
setModel: (id) => ipcRenderer.invoke('set-model', id),
onUpdateScreenshots: (callback) => ipcRenderer.on('update-screenshots', (event, paths) => callback(paths)),
onGeminiResponse: (callback) => ipcRenderer.on('gemini-response', (event, text) => callback(text)),
onGeminiStatus: (callback) => ipcRenderer.on('gemini-status', (event, status) => callback(status)),
triggerSolve: (customPrompt) => ipcRenderer.send('trigger-solve', customPrompt),
setIgnoreMouse: (ignore) => ipcRenderer.send('set-ignore-mouse', ignore),
closeCustomPrompt: () => ipcRenderer.send('close-custom-prompt'),
resizeWindow: (size) => ipcRenderer.send('resize-window', size),
onToggleModelDropdown: (callback) => ipcRenderer.on('toggle-model-dropdown', () => callback()),
onToggleCustomPrompt: (callback) => ipcRenderer.on('toggle-custom-prompt', () => callback()),
onForceExpand: (callback) => ipcRenderer.on('force-expand', () => callback()),
onForceCollapse: (callback) => ipcRenderer.on('force-collapse', () => callback()),
onScrollEvent: (callback) => ipcRenderer.on('scroll-event', (event, direction) => callback(direction)),
openExternal: (url) => shell.openExternal(url)
});