From 044b2de8c7861504704468ba441d4a6a37eed8f7 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Sun, 23 Jan 2022 17:12:47 +0100 Subject: refactor: Move runtime state into shared models MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now the runtime state lives inside the model (instead of being associated to the static settings via a map), which simplifies state management. Static settings are now located inside the runtime models, so we must create tests to make sure that the settings are being persisted correctly. The contents of the config file are now generated as a view of store (instead of a snapshot), which adds flexibility. Signed-off-by: Kristóf Marussy --- packages/renderer/src/stores/RendererStore.ts | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'packages/renderer/src/stores/RendererStore.ts') diff --git a/packages/renderer/src/stores/RendererStore.ts b/packages/renderer/src/stores/RendererStore.ts index 731ca28..a4e6197 100644 --- a/packages/renderer/src/stores/RendererStore.ts +++ b/packages/renderer/src/stores/RendererStore.ts @@ -18,17 +18,19 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -import { BrowserViewBounds, SophieRenderer, ThemeSource } from '@sophie/shared'; +import { + BrowserViewBounds, + sharedStore, + Service, + SophieRenderer, + ThemeSource, +} from '@sophie/shared'; import { applySnapshot, applyPatch, Instance, types } from 'mobx-state-tree'; +import RendererEnv from '../env/RendererEnv'; import getEnv from '../env/getEnv'; -import RendererEnvImpl from '../env/impl/RendererEnvImpl'; import { getLogger } from '../utils/log'; -import type { Config } from './Config'; -import type { Service } from './Service'; -import { sharedStore } from './SharedStore'; - const log = getLogger('RendererStore'); export const rendererStore = types @@ -36,11 +38,8 @@ export const rendererStore = types shared: types.optional(sharedStore, {}), }) .views((self) => ({ - get config(): Config { - return self.shared.config; - }, get services(): Service[] { - return this.config.services; + return self.shared.services; }, get selectedService(): Service | undefined { return self.shared.selectedService; @@ -87,9 +86,10 @@ export interface RendererStore extends Instance {} export function createAndConnectRendererStore( ipc: SophieRenderer, ): RendererStore { - const env = new RendererEnvImpl(ipc); + const env: RendererEnv = { + dispatchMainAction: ipc.dispatchAction, + }; const store = rendererStore.create({}, env); - env.setStore(store); ipc .onSharedStoreChange({ -- cgit v1.2.3-70-g09d2