From 6fd7d4855f26aa7f217094f815fc7c2ec14bed4f Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Tue, 28 Dec 2021 13:06:11 +0100 Subject: refactor: Get rid of dependency injector --- .../main/src/controllers/NativeThemeController.ts | 27 ++++++++-------------- 1 file changed, 10 insertions(+), 17 deletions(-) (limited to 'packages/main/src/controllers/NativeThemeController.ts') diff --git a/packages/main/src/controllers/NativeThemeController.ts b/packages/main/src/controllers/NativeThemeController.ts index a50d41e..931660c 100644 --- a/packages/main/src/controllers/NativeThemeController.ts +++ b/packages/main/src/controllers/NativeThemeController.ts @@ -20,30 +20,23 @@ import { nativeTheme } from 'electron'; import { autorun } from 'mobx'; -import { IDisposer } from 'mobx-state-tree'; import type { MainStore } from '../stores/MainStore'; +import { DisposeHelper } from '../utils'; -export class NativeThemeController { - private autorunDisposer: IDisposer | null = null; - - private shouldUseDarkColorsListener: (() => void) | null = null; - +export class NativeThemeController extends DisposeHelper { connect(store: MainStore): void { - this.autorunDisposer = autorun(() => { + this.registerDisposable(autorun(() => { nativeTheme.themeSource = store.config.themeSource; - }); + })); + store.setShouldUseDarkColors(nativeTheme.shouldUseDarkColors); - this.shouldUseDarkColorsListener = () => { + const shouldUseDarkColorsListener = () => { store.setShouldUseDarkColors(nativeTheme.shouldUseDarkColors); }; - nativeTheme.on('updated', this.shouldUseDarkColorsListener); - } - - dispose(): void { - if (this.shouldUseDarkColorsListener !== null) { - nativeTheme.off('updated', this.shouldUseDarkColorsListener); - } - this.autorunDisposer?.(); + nativeTheme.on('updated', shouldUseDarkColorsListener); + this.registerDisposable(() => { + nativeTheme.off('updated', shouldUseDarkColorsListener); + }); } } -- cgit v1.2.3-70-g09d2