43 lines
1.6 KiB
TypeScript
43 lines
1.6 KiB
TypeScript
import { MessageToWebApp } from '../Shared/IpcMessages'
|
|
const { ipcRenderer } = require('electron')
|
|
const path = require('path')
|
|
const rendererPath = path.join('file://', __dirname, '/renderer.js')
|
|
const RemoteBridge = require('@electron/remote').getGlobal('RemoteBridge')
|
|
const { contextBridge } = require('electron')
|
|
|
|
process.once('loaded', function () {
|
|
contextBridge.exposeInMainWorld('electronRemoteBridge', RemoteBridge.exposableValue)
|
|
|
|
listenForIpcEventsFromMainProcess()
|
|
})
|
|
|
|
function listenForIpcEventsFromMainProcess() {
|
|
const sendMessageToRenderProcess = (message: string, payload = {}) => {
|
|
window.postMessage(JSON.stringify({ message, data: payload }), rendererPath)
|
|
}
|
|
|
|
ipcRenderer.on(MessageToWebApp.UpdateAvailable, function (_event, data) {
|
|
sendMessageToRenderProcess(MessageToWebApp.UpdateAvailable, data)
|
|
})
|
|
|
|
ipcRenderer.on(MessageToWebApp.PerformAutomatedBackup, function (_event, data) {
|
|
sendMessageToRenderProcess(MessageToWebApp.PerformAutomatedBackup, data)
|
|
})
|
|
|
|
ipcRenderer.on(MessageToWebApp.FinishedSavingBackup, function (_event, data) {
|
|
sendMessageToRenderProcess(MessageToWebApp.FinishedSavingBackup, data)
|
|
})
|
|
|
|
ipcRenderer.on(MessageToWebApp.WindowBlurred, function (_event, data) {
|
|
sendMessageToRenderProcess(MessageToWebApp.WindowBlurred, data)
|
|
})
|
|
|
|
ipcRenderer.on(MessageToWebApp.WindowFocused, function (_event, data) {
|
|
sendMessageToRenderProcess(MessageToWebApp.WindowFocused, data)
|
|
})
|
|
|
|
ipcRenderer.on(MessageToWebApp.InstallComponentComplete, function (_event, data) {
|
|
sendMessageToRenderProcess(MessageToWebApp.InstallComponentComplete, data)
|
|
})
|
|
}
|