aboutsummaryrefslogtreecommitdiffstats
path: root/packages/preload
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2021-12-23 21:29:26 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2021-12-23 21:29:26 +0100
commitd303f2e3415237e1a519db21ad4e089c2ba7e9f9 (patch)
tree5d562dcaf7bb9c83c1930c7d7cf1b2c9de75e15b /packages/preload
parentbuild: Enable asar (diff)
downloadsophie-d303f2e3415237e1a519db21ad4e089c2ba7e9f9.tar.gz
sophie-d303f2e3415237e1a519db21ad4e089c2ba7e9f9.tar.zst
sophie-d303f2e3415237e1a519db21ad4e089c2ba7e9f9.zip
feat: Add BrowserView and synchronize its position
Diffstat (limited to 'packages/preload')
-rw-r--r--packages/preload/package.json2
-rw-r--r--packages/preload/src/SophieRendererImpl.ts21
2 files changed, 18 insertions, 5 deletions
diff --git a/packages/preload/package.json b/packages/preload/package.json
index e050b9a..bd2b412 100644
--- a/packages/preload/package.json
+++ b/packages/preload/package.json
@@ -12,7 +12,7 @@
12 }, 12 },
13 "dependencies": { 13 "dependencies": {
14 "@sophie/shared": "workspace:*", 14 "@sophie/shared": "workspace:*",
15 "electron": "^16.0.5", 15 "electron": "16.0.5",
16 "mobx": "^6.3.10", 16 "mobx": "^6.3.10",
17 "mobx-state-tree": "^5.1.0" 17 "mobx-state-tree": "^5.1.0"
18 }, 18 },
diff --git a/packages/preload/src/SophieRendererImpl.ts b/packages/preload/src/SophieRendererImpl.ts
index 1ac8b65..6bffeae 100644
--- a/packages/preload/src/SophieRendererImpl.ts
+++ b/packages/preload/src/SophieRendererImpl.ts
@@ -21,12 +21,16 @@
21import { ipcRenderer } from 'electron'; 21import { ipcRenderer } from 'electron';
22import type { IJsonPatch } from 'mobx-state-tree'; 22import type { IJsonPatch } from 'mobx-state-tree';
23import { 23import {
24 BrowserViewBounds,
25 browserViewBounds,
24 MainToRendererIpcMessage, 26 MainToRendererIpcMessage,
27 PaletteMode,
28 paletteMode,
25 RendererToMainIpcMessage, 29 RendererToMainIpcMessage,
26 sharedStore, 30 sharedStore,
27 SharedStoreListener, 31 SharedStoreListener,
28 SharedStoreSnapshotIn, 32 SharedStoreSnapshotIn,
29 SophieRenderer 33 SophieRenderer,
30} from '@sophie/shared'; 34} from '@sophie/shared';
31 35
32export type MessageSender = (channel: RendererToMainIpcMessage, ...args: unknown[]) => void; 36export type MessageSender = (channel: RendererToMainIpcMessage, ...args: unknown[]) => void;
@@ -71,8 +75,16 @@ export class SophieRendererImpl implements SophieRenderer {
71 this.#send(RendererToMainIpcMessage.SharedStoreSnapshotRequest); 75 this.#send(RendererToMainIpcMessage.SharedStoreSnapshotRequest);
72 } 76 }
73 77
74 buttonClick(): void { 78 setBrowserViewBounds(bounds: BrowserViewBounds): void {
75 this.#send(RendererToMainIpcMessage.ButtonClick); 79 if (browserViewBounds.safeParse(bounds).success) {
80 this.#send(RendererToMainIpcMessage.SetBrowserViewBounds, bounds);
81 }
82 }
83
84 setPaletteMode(mode: PaletteMode): void {
85 if (paletteMode.safeParse(mode).success) {
86 this.#send(RendererToMainIpcMessage.SetPaletteMode, mode);
87 }
76 } 88 }
77} 89}
78 90
@@ -89,6 +101,7 @@ export function createSophieRenderer(): SophieRenderer {
89 101
90 return { 102 return {
91 setSharedStoreListener: impl.setSharedStoreListener.bind(impl), 103 setSharedStoreListener: impl.setSharedStoreListener.bind(impl),
92 buttonClick: impl.buttonClick.bind(impl), 104 setBrowserViewBounds: impl.setBrowserViewBounds.bind(impl),
105 setPaletteMode: impl.setPaletteMode.bind(impl),
93 }; 106 };
94} 107}