From 95e3dab1c2ea4ba257e5bba88c7756c6e3398521 Mon Sep 17 00:00:00 2001 From: riqo Date: Sun, 20 Jun 2021 14:01:48 -0500 Subject: [PATCH] refactor ipcEmit event --- src/composables/useEmitter.ts | 6 +++--- src/render/composables/useIpcRend.ts | 4 ++-- src/render/composables/useMessages.ts | 2 +- src/render/composables/useProfile.ts | 4 ++-- src/types.ts | 5 +++-- src/window.ts | 14 +++----------- 6 files changed, 14 insertions(+), 21 deletions(-) diff --git a/src/composables/useEmitter.ts b/src/composables/useEmitter.ts index 134e969..f95f328 100644 --- a/src/composables/useEmitter.ts +++ b/src/composables/useEmitter.ts @@ -6,10 +6,10 @@ class BackgroundMitt extends EventEmitter { } export const backgroundMitt = new BackgroundMitt(); -export const ipcEmit = (channel: string, payload: any) => { +export const ipcEmit = (channel: string, payload: T) => { backgroundMitt.emit('ipc-renderer', { - channel: channel, - message: payload + channel, + payload }); }; diff --git a/src/render/composables/useIpcRend.ts b/src/render/composables/useIpcRend.ts index c1e5e33..9ba7f73 100644 --- a/src/render/composables/useIpcRend.ts +++ b/src/render/composables/useIpcRend.ts @@ -24,9 +24,9 @@ export class IpcRendererListener implements IIpcListener window.ipcRenderer.removeAllListeners(this.channel); } - private _onPost = (_e: IpcRendererEvent, payload: IpcEmitPayload): void => { + private _onPost = (_e: IpcRendererEvent, payload: InputParam): void => { console.log(`[IPC] Post: ${this.channel}`); - this._listenerCallback(payload.message); + this._listenerCallback(payload); } } diff --git a/src/render/composables/useMessages.ts b/src/render/composables/useMessages.ts index 11377fd..f731584 100644 --- a/src/render/composables/useMessages.ts +++ b/src/render/composables/useMessages.ts @@ -2,7 +2,7 @@ import { ref, Ref } from "vue"; import useScroll from "@/render/composables/useScroll"; -export let messages: Ref> = ref([]); +export const messages: Ref> = ref([]); export const setMessages: IpcListenerCallback> = (payload) => { messages.value = payload as Array; diff --git a/src/render/composables/useProfile.ts b/src/render/composables/useProfile.ts index 8585763..3575de7 100644 --- a/src/render/composables/useProfile.ts +++ b/src/render/composables/useProfile.ts @@ -1,9 +1,9 @@ // shared import { ref } from "vue"; -export let profile = ref(); +export const profile = ref(); -export let authComplete = ref(false); +export const authComplete = ref(false); export const setProfile: IpcListenerCallback = (payload) => { payload ? profile.value = payload : clearProfile(); diff --git a/src/types.ts b/src/types.ts index 7c78e29..450cb77 100644 --- a/src/types.ts +++ b/src/types.ts @@ -70,7 +70,8 @@ interface IPCListeners { [listener: string]: IIpcListener | null; } -interface IpcEmitPayload { - message: T | null; +interface IpcRendererEvent { + channel: string; + payload: T | null; } diff --git a/src/window.ts b/src/window.ts index 3c16e7a..21ebbca 100644 --- a/src/window.ts +++ b/src/window.ts @@ -9,11 +9,6 @@ import fs from 'fs'; import { config } from "@/config"; const { autoUpdater } = require('electron-updater'); -interface IpcRendererPayload { - channel: string; - message: Message | null; -} - let win: BrowserWindow | null; let winState: WindowState; @@ -49,12 +44,9 @@ const onNavBar = (_event: any, action: string): void => { } // Util function to render message on ipc-renderer event. -const renderMessage = (payload: IpcRendererPayload): void => { - console.log('sending to browser window', payload); +const postToWindow = (event: IpcRendererEvent): void => { if (win) { - win.webContents.send(payload.channel, { - message: payload.message - }); + win.webContents.send(event.channel, event.payload); } } @@ -89,7 +81,7 @@ const onWindowMount = (): void => { // Gateway for messages to the frontend. backgroundMitt.removeAllListeners("ipc-renderer") - backgroundMitt.on("ipc-renderer", renderMessage); + backgroundMitt.on("ipc-renderer", postToWindow); } -- 2.43.0