This repository has been archived on 2025-09-19. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
repertory-ui/src/containers/IPCContainer/IPCContainer.js
2021-08-04 17:17:16 -05:00

47 lines
1017 B
JavaScript

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;