fox-desktop/electron/preload.js

28 lines
940 B
JavaScript

const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('foxBridge', {
sendMessage: (text) => ipcRenderer.send('send-message', text),
hideHud: () => ipcRenderer.send('hide-hud'),
macCommand: (cmd) => ipcRenderer.invoke('mac-command', cmd),
onFoxAction: (cb) => {
ipcRenderer.removeAllListeners('fox-action');
ipcRenderer.on('fox-action', (_, data) => cb(data));
},
onHudShow: (cb) => {
ipcRenderer.removeAllListeners('hud-show');
ipcRenderer.on('hud-show', () => cb());
},
onHudHide: (cb) => {
ipcRenderer.removeAllListeners('hud-hide');
ipcRenderer.on('hud-hide', () => cb());
},
onStartListening: (cb) => {
ipcRenderer.removeAllListeners('start-listening');
ipcRenderer.on('start-listening', () => cb());
},
onPlayAudio: (cb) => {
ipcRenderer.removeAllListeners('play-audio');
ipcRenderer.on('play-audio', (_, url) => cb(url));
},
});