-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpreload.js
More file actions
54 lines (44 loc) · 2.16 KB
/
preload.js
File metadata and controls
54 lines (44 loc) · 2.16 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
const { contextBridge, ipcRenderer } = require('electron');
// Expose protected methods to renderer
contextBridge.exposeInMainWorld('electronAPI', {
// Listening toggle from hotkey
onToggleListening: (callback) => {
ipcRenderer.on('toggle-listening', callback);
},
// Get desktop sources for audio capture
getSources: () => ipcRenderer.invoke('get-sources'),
// Permission checks
checkScreenPermission: () => ipcRenderer.invoke('check-screen-permission'),
requestScreenPermission: () => ipcRenderer.invoke('request-screen-permission'),
// Window controls
minimizeWindow: () => ipcRenderer.send('window-minimize'),
closeWindow: () => ipcRenderer.send('window-close'),
maximizeWindow: () => ipcRenderer.send('window-maximize'),
setOpacity: (opacity) => ipcRenderer.send('set-opacity', opacity),
// Home ↔ Overlay context passing
launchOverlay: (data) => ipcRenderer.invoke('launch-overlay', data),
onReceiveContext: (callback) => {
ipcRenderer.on('receive-context', (event, data) => callback(data));
},
showHome: () => ipcRenderer.send('show-home'),
// Code Viewer
openCodeViewer: (snippets) => ipcRenderer.invoke('open-code-viewer', snippets),
openCodeWindow: (snippet) => ipcRenderer.invoke('open-code-window', snippet),
onCodeSnippets: (callback) => {
ipcRenderer.on('receive-snippets', (event, data) => callback(data));
},
onSingleCode: (callback) => {
ipcRenderer.on('receive-single-code', (event, data) => callback(data));
},
// Download transcript
saveTranscript: (content, defaultName) => ipcRenderer.invoke('save-transcript', content, defaultName),
// Code Compare
openCodeCompare: (data) => ipcRenderer.invoke('open-code-compare', data),
onCompareData: (callback) => {
ipcRenderer.on('receive-compare-data', (event, data) => callback(data));
},
// File parsing (PDF + DOCX via main process)
parseFile: (arrayBuffer, fileName) => ipcRenderer.invoke('parse-file', arrayBuffer, fileName),
// API keys — loaded from .env in main process, served securely here
getApiKeys: () => ipcRenderer.invoke('get-api-keys')
});