aboutsummaryrefslogtreecommitdiffstats
path: root/packages/main/src/stores/GlobalSettings.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/main/src/stores/GlobalSettings.ts')
-rw-r--r--packages/main/src/stores/GlobalSettings.ts54
1 files changed, 30 insertions, 24 deletions
diff --git a/packages/main/src/stores/GlobalSettings.ts b/packages/main/src/stores/GlobalSettings.ts
index 7bbc089..9ebc1b1 100644
--- a/packages/main/src/stores/GlobalSettings.ts
+++ b/packages/main/src/stores/GlobalSettings.ts
@@ -18,35 +18,41 @@
18 * SPDX-License-Identifier: AGPL-3.0-only 18 * SPDX-License-Identifier: AGPL-3.0-only
19 */ 19 */
20 20
21import { 21import { defineGlobalSettingsModel, ThemeSource } from '@sophie/shared';
22 GlobalSettings as GlobalSettingsBase, 22import { Instance, resolveIdentifier } from 'mobx-state-tree';
23 ThemeSource,
24} from '@sophie/shared';
25import { Instance, resolveIdentifier, types } from 'mobx-state-tree';
26 23
27import { getLogger } from '../utils/log'; 24import getLogger from '../utils/getLogger.js';
28import overrideProps from '../utils/overrideProps';
29 25
30import Service from './Service'; 26import Service from './Service.js';
31 27
32const log = getLogger('sharedStore'); 28const log = getLogger('sharedStore');
33 29
34const GlobalSettings = overrideProps(GlobalSettingsBase, { 30const GlobalSettings = defineGlobalSettingsModel(Service)
35 selectedService: types.safeReference(Service), 31 .actions((self) => ({
36}).actions((self) => ({ 32 setThemeSource(mode: ThemeSource): void {
37 setThemeSource(mode: ThemeSource): void { 33 self.themeSource = mode;
38 self.themeSource = mode; 34 },
39 }, 35 setShowLocationBar(showLocationBar: boolean): void {
40 setSelectedServiceId(serviceId: string): void { 36 self.showLocationBar = showLocationBar;
41 const serviceInstance = resolveIdentifier(Service, self, serviceId); 37 },
42 if (serviceInstance === undefined) { 38 setSelectedService(service: Service): void {
43 log.warn('Trying to select unknown service', serviceId); 39 self.selectedService = service;
44 return; 40 },
45 } 41 }))
46 self.selectedService = serviceInstance; 42 .actions((self) => ({
47 log.debug('Selected service', serviceId); 43 toggleLocationBar(): void {
48 }, 44 self.setShowLocationBar(!self.showLocationBar);
49})); 45 },
46 setSelectedServiceId(serviceId: string): void {
47 const serviceInstance = resolveIdentifier(Service, self, serviceId);
48 if (serviceInstance === undefined) {
49 log.warn('Trying to select unknown service', serviceId);
50 return;
51 }
52 self.setSelectedService(serviceInstance);
53 log.debug('Selected service', serviceId);
54 },
55 }));
50 56
51/* 57/*
52 eslint-disable-next-line @typescript-eslint/no-redeclare -- 58 eslint-disable-next-line @typescript-eslint/no-redeclare --