diff --git a/src/main/main.ts b/src/main/main.ts index 04e81bb6..1aa2b2e2 100644 --- a/src/main/main.ts +++ b/src/main/main.ts @@ -9,7 +9,7 @@ * `./src/main.js` using webpack. This gives us some performance wins. */ import path from 'path'; -import { app, protocol } from 'electron'; +import { app, ipcMain, protocol } from 'electron'; import log from 'electron-log'; import './ipcs'; import { UtilsService } from './services/utils.service'; @@ -21,6 +21,7 @@ import { LocalPlaylistsManagerService } from './services/additional-content/loca import { LocalModelsManagerService } from './services/additional-content/local-models-manager.service'; import { APP_NAME } from './constants'; import { BSLauncherService } from './services/bs-launcher.service'; +import { IpcRequest } from 'shared/models/ipc'; const isDebug = process.env.NODE_ENV === 'development' || process.env.DEBUG_PROD === 'true'; @@ -100,5 +101,10 @@ else{ BSLauncherService.getInstance().restoreSteamVR(); + // Log renderer errors + ipcMain.on('log-error', (event, args: IpcRequest) => { + log.error(args?.args); + }); + }).catch(log.error); } \ No newline at end of file diff --git a/src/renderer/index.tsx b/src/renderer/index.tsx index 66737af6..f25e8a46 100644 --- a/src/renderer/index.tsx +++ b/src/renderer/index.tsx @@ -2,12 +2,19 @@ import { createRoot } from 'react-dom/client'; import { HashRouter } from 'react-router-dom'; import 'tailwindcss/tailwind.css'; import './index.css' +import { IpcService } from './services/ipc.service'; const launcherContainer = document.getElementById('launcher'); const oneclickDownloadMapContainer = document.getElementById('oneclick-download-map'); const oneclickDownloadPlaylistContainer = document.getElementById('oneclick-download-playlist'); const oneclickDownloadModelContainer = document.getElementById('oneclick-download-model'); +const ipc = IpcService.getInstance(); + +window.onerror = (...data) => { + ipc.sendLazy('log-error', {args: data}); +} + if(launcherContainer){ import("./windows/Launcher").then(reactWindow => { createRoot(launcherContainer).render();