aboutsummaryrefslogtreecommitdiffstats
path: root/packages/renderer/src/stores/RootStore.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/renderer/src/stores/RootStore.ts')
-rw-r--r--packages/renderer/src/stores/RootStore.ts26
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';
29import { sharedStore, SophieRenderer } from '@sophie/shared'; 29import {
30 BrowserViewBounds,
31 emptySharedStore,
32 PaletteMode,
33 sharedStore,
34 SophieRenderer,
35} from '@sophie/shared';
30 36
31export interface RootEnv { 37export 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 {
46export const rootStore = types.model('RootStore', { 52export 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 */
64export function createAndConnectRootStore(ipc: SophieRenderer): RootStore { 80export 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 });