44 lines
999 B
JavaScript
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);
|
|
}
|
|
};
|
|
|
|
}; |