-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpreload.js
More file actions
34 lines (33 loc) · 1.67 KB
/
Copy pathpreload.js
File metadata and controls
34 lines (33 loc) · 1.67 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
'use strict';
const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('api', {
getUsage: () => ipcRenderer.invoke('usage'),
setUsageRange: (provider, rangeDays) => ipcRenderer.invoke('usage-range', provider, rangeDays),
clearAccountLedger: () => ipcRenderer.invoke('account-ledger-clear'),
onUsage: (callback) => {
const listener = (_event, usage) => callback(usage);
ipcRenderer.on('usage-updated', listener);
return () => ipcRenderer.removeListener('usage-updated', listener);
},
openSession: (session) => ipcRenderer.invoke('open-session', session),
getClaudeAuth: () => ipcRenderer.invoke('claude-auth-status'),
connectClaude: () => ipcRenderer.invoke('claude-auth-connect'),
completeClaude: (code) => ipcRenderer.invoke('claude-auth-complete', code),
cancelClaude: () => ipcRenderer.invoke('claude-auth-cancel'),
disconnectClaude: () => ipcRenderer.invoke('claude-auth-disconnect'),
getFloatingState: () => ipcRenderer.invoke('floating-state'),
onFloatingState: (callback) => {
const listener = (_event, state) => callback(state);
ipcRenderer.on('floating-state', listener);
return () => ipcRenderer.removeListener('floating-state', listener);
},
onFloatingActivity: (callback) => {
const listener = (_event, activity) => callback(activity);
ipcRenderer.on('floating-activity', listener);
return () => ipcRenderer.removeListener('floating-activity', listener);
},
setFloatingExpanded: (expanded, reduceMotion = false) =>
ipcRenderer.send('floating-expanded', { expanded, reduceMotion }),
openPanel: () => ipcRenderer.send('open-panel'),
closePanel: () => ipcRenderer.send('close-panel'),
});