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
Scott E. Graves 798980cbbd Refactoring
2019-06-08 00:03:05 -05:00

44 lines
999 B
JavaScript

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);
}
};
};