diff options
author | Kristóf Marussy <kristof@marussy.com> | 2021-12-23 21:29:26 +0100 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2021-12-23 21:29:26 +0100 |
commit | d303f2e3415237e1a519db21ad4e089c2ba7e9f9 (patch) | |
tree | 5d562dcaf7bb9c83c1930c7d7cf1b2c9de75e15b /packages/preload | |
parent | build: Enable asar (diff) | |
download | sophie-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.json | 2 | ||||
-rw-r--r-- | packages/preload/src/SophieRendererImpl.ts | 21 |
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 @@ | |||
21 | import { ipcRenderer } from 'electron'; | 21 | import { ipcRenderer } from 'electron'; |
22 | import type { IJsonPatch } from 'mobx-state-tree'; | 22 | import type { IJsonPatch } from 'mobx-state-tree'; |
23 | import { | 23 | import { |
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 | ||
32 | export type MessageSender = (channel: RendererToMainIpcMessage, ...args: unknown[]) => void; | 36 | export 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 | } |