diff options
author | Kristóf Marussy <kristof@marussy.com> | 2021-12-26 01:59:17 +0100 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2021-12-26 01:59:17 +0100 |
commit | cce40ab1d2ad8cc1b60fabb4cc8281ea0490a123 (patch) | |
tree | bb96df2676934a9cd4ef2bc5a48957e8b32fb646 /packages/main/src/index.ts | |
parent | refactor: Simplify browserViewBounds handling (diff) | |
download | sophie-cce40ab1d2ad8cc1b60fabb4cc8281ea0490a123.tar.gz sophie-cce40ab1d2ad8cc1b60fabb4cc8281ea0490a123.tar.zst sophie-cce40ab1d2ad8cc1b60fabb4cc8281ea0490a123.zip |
feat: Set nativeTheme theme source on dark mode
Diffstat (limited to 'packages/main/src/index.ts')
-rw-r--r-- | packages/main/src/index.ts | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/packages/main/src/index.ts b/packages/main/src/index.ts index a135902..6a8a74e 100644 --- a/packages/main/src/index.ts +++ b/packages/main/src/index.ts | |||
@@ -23,6 +23,7 @@ import { | |||
23 | BrowserView, | 23 | BrowserView, |
24 | BrowserWindow, | 24 | BrowserWindow, |
25 | ipcMain, | 25 | ipcMain, |
26 | nativeTheme, | ||
26 | } from 'electron'; | 27 | } from 'electron'; |
27 | import { readFile, readFileSync } from 'fs'; | 28 | import { readFile, readFileSync } from 'fs'; |
28 | import { autorun } from 'mobx'; | 29 | import { autorun } from 'mobx'; |
@@ -36,7 +37,7 @@ import { | |||
36 | import { | 37 | import { |
37 | browserViewBounds, | 38 | browserViewBounds, |
38 | MainToRendererIpcMessage, | 39 | MainToRendererIpcMessage, |
39 | paletteMode, | 40 | themeSource, |
40 | RendererToMainIpcMessage, | 41 | RendererToMainIpcMessage, |
41 | } from '@sophie/shared'; | 42 | } from '@sophie/shared'; |
42 | import { URL } from 'url'; | 43 | import { URL } from 'url'; |
@@ -104,6 +105,15 @@ let mainWindow: BrowserWindow | null = null; | |||
104 | 105 | ||
105 | const store = createRootStore(); | 106 | const store = createRootStore(); |
106 | 107 | ||
108 | autorun(() => { | ||
109 | nativeTheme.themeSource = store.config.themeSource; | ||
110 | }); | ||
111 | |||
112 | store.setShouldUseDarkColors(nativeTheme.shouldUseDarkColors); | ||
113 | nativeTheme.on('updated', () => { | ||
114 | store.setShouldUseDarkColors(nativeTheme.shouldUseDarkColors); | ||
115 | }); | ||
116 | |||
107 | const rendererBaseUrl = getResourceUrl('../renderer/'); | 117 | const rendererBaseUrl = getResourceUrl('../renderer/'); |
108 | function shouldCancelMainWindowRequest(url: string, method: string): boolean { | 118 | function shouldCancelMainWindowRequest(url: string, method: string): boolean { |
109 | if (method !== 'GET') { | 119 | if (method !== 'GET') { |
@@ -191,8 +201,8 @@ function createWindow(): Promise<unknown> { | |||
191 | case RendererToMainIpcMessage.SetBrowserViewBounds: | 201 | case RendererToMainIpcMessage.SetBrowserViewBounds: |
192 | store.setBrowserViewBounds(browserViewBounds.parse(args[0])); | 202 | store.setBrowserViewBounds(browserViewBounds.parse(args[0])); |
193 | break; | 203 | break; |
194 | case RendererToMainIpcMessage.SetPaletteMode: | 204 | case RendererToMainIpcMessage.SetThemeSource: |
195 | store.setPaletteMode(paletteMode.parse(args[0])) | 205 | store.config.setThemeSource(themeSource.parse(args[0])) |
196 | break; | 206 | break; |
197 | case RendererToMainIpcMessage.ReloadAllServices: | 207 | case RendererToMainIpcMessage.ReloadAllServices: |
198 | readFile(serviceInjectPath, 'utf8', (err, data) => { | 208 | readFile(serviceInjectPath, 'utf8', (err, data) => { |