diff options
author | Kristóf Marussy <kristof@marussy.com> | 2022-05-25 19:11:23 +0200 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2022-05-26 15:49:42 +0200 |
commit | 888277e49db9f5831f0afe4dd3bcc82b7b84465f (patch) | |
tree | 0fed21d4e77eab19662ab841ed514318e3855ca2 /packages | |
parent | build(renderer): use modern MUI build (diff) | |
download | sophie-888277e49db9f5831f0afe4dd3bcc82b7b84465f.tar.gz sophie-888277e49db9f5831f0afe4dd3bcc82b7b84465f.tar.zst sophie-888277e49db9f5831f0afe4dd3bcc82b7b84465f.zip |
refactor: use setBackgroundColor instead of CSS
Signed-off-by: Kristóf Marussy <kristof@marussy.com>
Diffstat (limited to 'packages')
-rw-r--r-- | packages/main/src/infrastructure/electron/impl/ElectronMainWindow.ts | 17 | ||||
-rw-r--r-- | packages/renderer/src/index.tsx | 1 | ||||
-rw-r--r-- | packages/renderer/src/style.css | 29 |
3 files changed, 17 insertions, 30 deletions
diff --git a/packages/main/src/infrastructure/electron/impl/ElectronMainWindow.ts b/packages/main/src/infrastructure/electron/impl/ElectronMainWindow.ts index c4b3823..f1e3c7e 100644 --- a/packages/main/src/infrastructure/electron/impl/ElectronMainWindow.ts +++ b/packages/main/src/infrastructure/electron/impl/ElectronMainWindow.ts | |||
@@ -25,9 +25,11 @@ import { | |||
25 | Translation, | 25 | Translation, |
26 | } from '@sophie/shared'; | 26 | } from '@sophie/shared'; |
27 | import { BrowserWindow, ipcMain, IpcMainEvent } from 'electron'; | 27 | import { BrowserWindow, ipcMain, IpcMainEvent } from 'electron'; |
28 | import { reaction } from 'mobx'; | ||
28 | import type { IJsonPatch } from 'mobx-state-tree'; | 29 | import type { IJsonPatch } from 'mobx-state-tree'; |
29 | 30 | ||
30 | import type MainStore from '../../../stores/MainStore.js'; | 31 | import type MainStore from '../../../stores/MainStore.js'; |
32 | import Disposer from '../../../utils/Disposer.js'; | ||
31 | import getLogger from '../../../utils/getLogger.js'; | 33 | import getLogger from '../../../utils/getLogger.js'; |
32 | import RendererBridge from '../RendererBridge.js'; | 34 | import RendererBridge from '../RendererBridge.js'; |
33 | import type { MainWindow, ServiceView } from '../types.js'; | 35 | import type { MainWindow, ServiceView } from '../types.js'; |
@@ -39,6 +41,10 @@ import lockWebContentsToFile from './lockWebContentsToFile.js'; | |||
39 | 41 | ||
40 | const log = getLogger('ElectronMainWindow'); | 42 | const log = getLogger('ElectronMainWindow'); |
41 | 43 | ||
44 | function getBackroundColor(useDarkTheme: boolean): string { | ||
45 | return useDarkTheme ? '#121212' : '#FFF'; | ||
46 | } | ||
47 | |||
42 | export default class ElectronMainWindow implements MainWindow { | 48 | export default class ElectronMainWindow implements MainWindow { |
43 | private readonly browserWindow: BrowserWindow; | 49 | private readonly browserWindow: BrowserWindow; |
44 | 50 | ||
@@ -66,6 +72,8 @@ export default class ElectronMainWindow implements MainWindow { | |||
66 | } | 72 | } |
67 | }; | 73 | }; |
68 | 74 | ||
75 | private readonly disposeBackgroundColorReaction: Disposer; | ||
76 | |||
69 | constructor( | 77 | constructor( |
70 | private readonly store: MainStore, | 78 | private readonly store: MainStore, |
71 | private readonly parent: ElectronViewFactory, | 79 | private readonly parent: ElectronViewFactory, |
@@ -74,6 +82,7 @@ export default class ElectronMainWindow implements MainWindow { | |||
74 | show: false, | 82 | show: false, |
75 | autoHideMenuBar: true, | 83 | autoHideMenuBar: true, |
76 | darkTheme: store.shared.shouldUseDarkColors, | 84 | darkTheme: store.shared.shouldUseDarkColors, |
85 | backgroundColor: getBackroundColor(store.shared.shouldUseDarkColors), | ||
77 | webPreferences: { | 86 | webPreferences: { |
78 | sandbox: true, | 87 | sandbox: true, |
79 | devTools: parent.devMode, | 88 | devTools: parent.devMode, |
@@ -126,6 +135,13 @@ export default class ElectronMainWindow implements MainWindow { | |||
126 | 135 | ||
127 | webContents.userAgent = parent.userAgents.mainWindowUserAgent; | 136 | webContents.userAgent = parent.userAgents.mainWindowUserAgent; |
128 | 137 | ||
138 | this.disposeBackgroundColorReaction = reaction( | ||
139 | () => store.shared.shouldUseDarkColors, | ||
140 | (useDarkTheme) => { | ||
141 | this.browserWindow.setBackgroundColor(getBackroundColor(useDarkTheme)); | ||
142 | }, | ||
143 | ); | ||
144 | |||
129 | this.browserWindow.on('ready-to-show', () => this.browserWindow.show()); | 145 | this.browserWindow.on('ready-to-show', () => this.browserWindow.show()); |
130 | 146 | ||
131 | this.browserWindow.on('close', () => this.dispose()); | 147 | this.browserWindow.on('close', () => this.dispose()); |
@@ -171,6 +187,7 @@ export default class ElectronMainWindow implements MainWindow { | |||
171 | 187 | ||
172 | dispose() { | 188 | dispose() { |
173 | this.bridge.dispose(); | 189 | this.bridge.dispose(); |
190 | this.disposeBackgroundColorReaction(); | ||
174 | this.browserWindow.destroy(); | 191 | this.browserWindow.destroy(); |
175 | ipcMain.removeHandler(RendererToMainIpcMessage.GetSharedStoreSnapshot); | 192 | ipcMain.removeHandler(RendererToMainIpcMessage.GetSharedStoreSnapshot); |
176 | ipcMain.removeListener( | 193 | ipcMain.removeListener( |
diff --git a/packages/renderer/src/index.tsx b/packages/renderer/src/index.tsx index 32fcee6..f1e8542 100644 --- a/packages/renderer/src/index.tsx +++ b/packages/renderer/src/index.tsx | |||
@@ -24,7 +24,6 @@ import { addDisposer } from 'mobx-state-tree'; | |||
24 | import React, { Suspense, lazy } from 'react'; | 24 | import React, { Suspense, lazy } from 'react'; |
25 | import { createRoot } from 'react-dom/client'; | 25 | import { createRoot } from 'react-dom/client'; |
26 | 26 | ||
27 | import './style.css'; | ||
28 | import Loading from './components/Loading.js'; | 27 | import Loading from './components/Loading.js'; |
29 | import ThemeProvider from './components/ThemeProvider.js'; | 28 | import ThemeProvider from './components/ThemeProvider.js'; |
30 | import { exposeToReduxDevtools, hotReload } from './devTools.js'; | 29 | import { exposeToReduxDevtools, hotReload } from './devTools.js'; |
diff --git a/packages/renderer/src/style.css b/packages/renderer/src/style.css deleted file mode 100644 index d0bf2fb..0000000 --- a/packages/renderer/src/style.css +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2022 Kristóf Marussy <kristof@marussy.com> | ||
3 | * | ||
4 | * This file is part of Sophie. | ||
5 | * | ||
6 | * Sophie is free software: you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU Affero General Public License as | ||
8 | * published by the Free Software Foundation, version 3. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU Affero General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU Affero General Public License | ||
16 | * along with this program. If not, see <https://www.gnu.org/licenses/>. | ||
17 | * | ||
18 | * SPDX-License-Identifier: AGPL-3.0-only | ||
19 | */ | ||
20 | |||
21 | body { | ||
22 | background-color: #fff; | ||
23 | } | ||
24 | |||
25 | @media (prefers-color-scheme: dark) { | ||
26 | body { | ||
27 | background-color: #121212; | ||
28 | } | ||
29 | } | ||