From 7bae2958d322b8e830278b60bc6568f87c197d14 Mon Sep 17 00:00:00 2001 From: Willem Leuverink Date: Fri, 13 Sep 2024 11:59:34 +0200 Subject: [PATCH] Add client side Event helper (#38) * Add broadcasting endpoint & dispatch ipc event * Inject Native helper object in browser window * Strip leading slashes before matching event name * added event name as second callback parameter --- src/preload/index.ts | 5 +++++ src/preload/native.ts | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 src/preload/native.ts diff --git a/src/preload/index.ts b/src/preload/index.ts index f691e47..a7d702a 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -1,6 +1,11 @@ import { contextBridge, ipcRenderer } from 'electron' import * as remote from '@electron/remote' +import Native from './native'; + +// @ts-ignore +window.Native = Native; + // @ts-ignore window.remote = remote; diff --git a/src/preload/native.ts b/src/preload/native.ts new file mode 100644 index 0000000..d912e26 --- /dev/null +++ b/src/preload/native.ts @@ -0,0 +1,16 @@ +import { ipcRenderer } from 'electron' + +export default { + on: (event, callback) => { + ipcRenderer.on('native-event', (_, data) => { + + // Strip leading slashes + event = event.replace(/^(\\)+/, ''); + data.event = data.event.replace(/^(\\)+/, ''); + + if(event === data.event) { + return callback(data.payload, event); + } + }) + } +}