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