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/renderer/src/stores | |
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/renderer/src/stores')
-rw-r--r-- | packages/renderer/src/stores/RootStore.ts | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/packages/renderer/src/stores/RootStore.ts b/packages/renderer/src/stores/RootStore.ts index f24ea4d..c6533ba 100644 --- a/packages/renderer/src/stores/RootStore.ts +++ b/packages/renderer/src/stores/RootStore.ts | |||
@@ -26,10 +26,16 @@ import { | |||
26 | Instance, | 26 | Instance, |
27 | types | 27 | types |
28 | } from 'mobx-state-tree'; | 28 | } from 'mobx-state-tree'; |
29 | import { sharedStore, SophieRenderer } from '@sophie/shared'; | 29 | import { |
30 | BrowserViewBounds, | ||
31 | emptySharedStore, | ||
32 | PaletteMode, | ||
33 | sharedStore, | ||
34 | SophieRenderer, | ||
35 | } from '@sophie/shared'; | ||
30 | 36 | ||
31 | export interface RootEnv { | 37 | export interface RootEnv { |
32 | ipc: SophieRenderer; | 38 | ipc: Omit<SophieRenderer, 'setSharedStoreListener'>; |
33 | } | 39 | } |
34 | 40 | ||
35 | /** | 41 | /** |
@@ -46,8 +52,18 @@ export function getEnv(model: IAnyStateTreeNode): RootEnv { | |||
46 | export const rootStore = types.model('RootStore', { | 52 | export const rootStore = types.model('RootStore', { |
47 | shared: sharedStore, | 53 | shared: sharedStore, |
48 | }).actions((self) => ({ | 54 | }).actions((self) => ({ |
49 | buttonClick() { | 55 | setBrowserViewBounds(bounds: BrowserViewBounds) { |
50 | getEnv(self).ipc.buttonClick(); | 56 | getEnv(self).ipc.setBrowserViewBounds(bounds); |
57 | }, | ||
58 | setPaletteMode(mode: PaletteMode) { | ||
59 | getEnv(self).ipc.setPaletteMode(mode); | ||
60 | }, | ||
61 | toggleDarkMode() { | ||
62 | if (self.shared.shouldUseDarkColors) { | ||
63 | this.setPaletteMode('light'); | ||
64 | } else { | ||
65 | this.setPaletteMode('dark'); | ||
66 | } | ||
51 | }, | 67 | }, |
52 | })); | 68 | })); |
53 | 69 | ||
@@ -63,7 +79,7 @@ export interface RootStore extends Instance<typeof rootStore> {} | |||
63 | */ | 79 | */ |
64 | export function createAndConnectRootStore(ipc: SophieRenderer): RootStore { | 80 | export function createAndConnectRootStore(ipc: SophieRenderer): RootStore { |
65 | const store = rootStore.create({ | 81 | const store = rootStore.create({ |
66 | shared: {}, | 82 | shared: emptySharedStore, |
67 | }, { | 83 | }, { |
68 | ipc, | 84 | ipc, |
69 | }); | 85 | }); |