import {Component} from 'react'; import {getIPCRenderer} from '../../utils'; export default class extends Component { handlerList = {}; ipcRenderer = getIPCRenderer(); componentWillUnmount() { if (this.ipcRenderer) { for (let name in this.handlerList) { if (this.handlerList.hasOwnProperty(name)) { this.ipcRenderer.removeListener(name, this.handlerList[name]); } } } this.handlerList = {}; }; sendRequest = (name, data) => { if (this.ipcRenderer) { this.ipcRenderer.send(name, data); } }; sendSyncRequest = (name, data) => { if (this.ipcRenderer) { return this.ipcRenderer.sendSync(name + '_sync', data); } else { return { Success: false, Error: 'IPC not available. Running in browser?', }; } }; setRequestHandler = (name, callback) => { if (this.ipcRenderer) { this.handlerList[name] = callback; this.ipcRenderer.on(name, callback); } }; };