diff options
author | Kristóf Marussy <kristof@marussy.com> | 2021-12-23 00:43:55 +0100 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2021-12-23 01:17:18 +0100 |
commit | cf23e60c17763123caa77f1194e6efd913692ea1 (patch) | |
tree | 42266377ac1a65a9b225737c8cbef02c6b1871cd /packages/main/src | |
parent | feat: Add mui (diff) | |
download | sophie-cf23e60c17763123caa77f1194e6efd913692ea1.tar.gz sophie-cf23e60c17763123caa77f1194e6efd913692ea1.tar.zst sophie-cf23e60c17763123caa77f1194e6efd913692ea1.zip |
feat: Add shared package for electron ipc
Diffstat (limited to 'packages/main/src')
-rw-r--r-- | packages/main/src/index.ts | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/packages/main/src/index.ts b/packages/main/src/index.ts index ef954e1..cd04276 100644 --- a/packages/main/src/index.ts +++ b/packages/main/src/index.ts | |||
@@ -1,5 +1,6 @@ | |||
1 | import { app, BrowserWindow } from 'electron'; | 1 | import { app, BrowserWindow } from 'electron'; |
2 | import { join } from 'path'; | 2 | import { join } from 'path'; |
3 | import { RendererIpcMessage } from '@sophie/shared'; | ||
3 | import { URL } from 'url'; | 4 | import { URL } from 'url'; |
4 | 5 | ||
5 | const isSingleInstance = app.requestSingleInstanceLock(); | 6 | const isSingleInstance = app.requestSingleInstanceLock(); |
@@ -49,9 +50,10 @@ function createWindow(): Promise<void> { | |||
49 | } | 50 | } |
50 | }); | 51 | }); |
51 | 52 | ||
53 | const { webContents } = mainWindow; | ||
54 | |||
52 | // See https://github.com/MarshallOfSound/electron-devtools-installer/issues/195#issuecomment-998872878 | 55 | // See https://github.com/MarshallOfSound/electron-devtools-installer/issues/195#issuecomment-998872878 |
53 | if (isDevelopment) { | 56 | if (isDevelopment) { |
54 | const { webContents } = mainWindow; | ||
55 | webContents.once('dom-ready', () => { | 57 | webContents.once('dom-ready', () => { |
56 | webContents.once('devtools-opened', () => { | 58 | webContents.once('devtools-opened', () => { |
57 | mainWindow?.focus(); | 59 | mainWindow?.focus(); |
@@ -64,6 +66,17 @@ function createWindow(): Promise<void> { | |||
64 | mainWindow?.show(); | 66 | mainWindow?.show(); |
65 | }); | 67 | }); |
66 | 68 | ||
69 | webContents.on('ipc-message', (_event, channel, ...args) => { | ||
70 | switch (channel) { | ||
71 | case RendererIpcMessage.ButtonClicked: | ||
72 | console.log('Button clicked'); | ||
73 | break; | ||
74 | default: | ||
75 | console.warn('Unknown IPC message:', channel, args); | ||
76 | break; | ||
77 | } | ||
78 | }); | ||
79 | |||
67 | const pageUrl = (isDevelopment && import.meta.env.VITE_DEV_SERVER_URL !== undefined) | 80 | const pageUrl = (isDevelopment && import.meta.env.VITE_DEV_SERVER_URL !== undefined) |
68 | ? import.meta.env.VITE_DEV_SERVER_URL | 81 | ? import.meta.env.VITE_DEV_SERVER_URL |
69 | : new URL('../renderer/dist/index.html', `file://${__dirname}`).toString(); | 82 | : new URL('../renderer/dist/index.html', `file://${__dirname}`).toString(); |