2
0
mirror of https://github.com/frappe/books.git synced 2025-02-08 23:18:31 +00:00

refactor: use channels for ipcMain to ipcRenderer

This commit is contained in:
18alantom 2022-02-03 13:26:29 +05:30
parent 2fef56459c
commit f42df70fb1
3 changed files with 22 additions and 7 deletions

View File

@ -16,7 +16,7 @@ import fs from 'fs/promises';
import path from 'path'; import path from 'path';
import { createProtocol } from 'vue-cli-plugin-electron-builder/lib'; import { createProtocol } from 'vue-cli-plugin-electron-builder/lib';
import { sendError } from './contactMothership'; import { sendError } from './contactMothership';
import { IPC_ACTIONS, IPC_MESSAGES } from './messages'; import { IPC_ACTIONS, IPC_CHANNELS, IPC_MESSAGES } from './messages';
import saveHtmlAsPdf from './saveHtmlAsPdf'; import saveHtmlAsPdf from './saveHtmlAsPdf';
const isDevelopment = process.env.NODE_ENV !== 'production'; const isDevelopment = process.env.NODE_ENV !== 'production';
@ -104,7 +104,7 @@ function createWindow() {
}); });
mainWindow.webContents.on('did-finish-load', () => { mainWindow.webContents.on('did-finish-load', () => {
mainWindow.webContents.send('store-on-window', { mainWindow.webContents.send(IPC_CHANNELS.STORE_ON_WINDOW, {
appVersion: app.getVersion(), appVersion: app.getVersion(),
}); });
}); });
@ -201,7 +201,7 @@ ipcMain.handle(IPC_ACTIONS.SEND_ERROR, (event, bodyJson) => {
}); });
ipcMain.handle(IPC_ACTIONS.CHECK_FOR_UPDATES, (event, force) => { ipcMain.handle(IPC_ACTIONS.CHECK_FOR_UPDATES, (event, force) => {
if (!isDevelopment && !checkedForUpdate) { if (force || (!isDevelopment && !checkedForUpdate)) {
autoUpdater.checkForUpdatesAndNotify(); autoUpdater.checkForUpdatesAndNotify();
checkedForUpdate = true; checkedForUpdate = true;
} }

View File

@ -5,11 +5,21 @@ import models from '../models';
import App from './App'; import App from './App';
import FeatherIcon from './components/FeatherIcon'; import FeatherIcon from './components/FeatherIcon';
import { getErrorHandled, handleError } from './errorHandling'; import { getErrorHandled, handleError } from './errorHandling';
import { IPC_ACTIONS, IPC_MESSAGES } from './messages'; import { IPC_CHANNELS, IPC_MESSAGES } from './messages';
import router from './router'; import router from './router';
import { outsideClickDirective } from './ui'; import { outsideClickDirective } from './ui';
import { stringifyCircular } from './utils'; import { stringifyCircular } from './utils';
function registerIpcRendererListeners() {
ipcRenderer.on(IPC_CHANNELS.STORE_ON_WINDOW, (event, message) => {
Object.assign(window.frappe.store, message);
});
ipcRenderer.on('wc-message', (event, message) => {
console.log(message);
});
}
(async () => { (async () => {
frappe.isServer = true; frappe.isServer = true;
frappe.isElectron = true; frappe.isElectron = true;
@ -26,9 +36,7 @@ import { stringifyCircular } from './utils';
window.frappe = frappe; window.frappe = frappe;
window.frappe.store = {}; window.frappe.store = {};
ipcRenderer.on('store-on-window', (event, message) => { registerIpcRendererListeners();
Object.assign(window.frappe.store, message);
});
Vue.config.productionTip = false; Vue.config.productionTip = false;
Vue.component('feather-icon', FeatherIcon); Vue.component('feather-icon', FeatherIcon);

View File

@ -1,3 +1,4 @@
// ipcRenderer.send(...)
export const IPC_MESSAGES = { export const IPC_MESSAGES = {
OPEN_MENU: 'open-menu', OPEN_MENU: 'open-menu',
OPEN_SETTINGS: 'open-settings', OPEN_SETTINGS: 'open-settings',
@ -9,6 +10,7 @@ export const IPC_MESSAGES = {
MINIMIZE_CURRENT_WINDOW: 'minimize-current-window', MINIMIZE_CURRENT_WINDOW: 'minimize-current-window',
}; };
// ipcRenderer.invoke(...)
export const IPC_ACTIONS = { export const IPC_ACTIONS = {
TOGGLE_MAXIMIZE_CURRENT_WINDOW: 'toggle-maximize-current-window', TOGGLE_MAXIMIZE_CURRENT_WINDOW: 'toggle-maximize-current-window',
GET_OPEN_FILEPATH: 'open-dialog', GET_OPEN_FILEPATH: 'open-dialog',
@ -22,6 +24,11 @@ export const IPC_ACTIONS = {
CHECK_FOR_UPDATES: 'check-for-updates', CHECK_FOR_UPDATES: 'check-for-updates',
}; };
// ipcMain.send(...)
export const IPC_CHANNELS = {
STORE_ON_WINDOW: 'store-on-window',
};
export const DB_CONN_FAILURE = { export const DB_CONN_FAILURE = {
INVALID_FILE: 'invalid-file', INVALID_FILE: 'invalid-file',
CANT_OPEN: 'cant-open', CANT_OPEN: 'cant-open',