From 287147a64ddf33c45994de2a3631878e2c899184 Mon Sep 17 00:00:00 2001 From: Jari Kolehmainen Date: Mon, 30 Nov 2020 14:03:44 +0200 Subject: [PATCH] fix Signed-off-by: Jari Kolehmainen --- src/common/__tests__/workspace-store.test.ts | 7 ++--- src/common/workspace-store.ts | 31 ++++++++++++-------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/common/__tests__/workspace-store.test.ts b/src/common/__tests__/workspace-store.test.ts index 953f350cb8..a15128f4e3 100644 --- a/src/common/__tests__/workspace-store.test.ts +++ b/src/common/__tests__/workspace-store.test.ts @@ -7,12 +7,9 @@ jest.mock("electron", () => { getPath: () => "tmp", getLocale: () => "en" }, - ipcRenderer: { - invoke: jest.fn(), - on: jest.fn() - }, ipcMain: { - handle: jest.fn() + handle: jest.fn(), + on: jest.fn() } }; }); diff --git a/src/common/workspace-store.ts b/src/common/workspace-store.ts index ecdec9715c..4ce170e792 100644 --- a/src/common/workspace-store.ts +++ b/src/common/workspace-store.ts @@ -49,9 +49,9 @@ export class Workspace implements WorkspaceModel, WorkspaceState { } getState(): WorkspaceState { - return { + return toJS({ enabled: this.enabled - }; + }); } pushState(state = this.getState()) { @@ -87,21 +87,28 @@ export class WorkspaceStore extends BaseStore { async load() { await super.load(); + type workspaceStateSync = { + id: string; + state: WorkspaceState; + }; if (ipcRenderer) { logger.info("[WORKSPACE-STORE] requesting initial state sync"); - await requestMain(this.stateRequestChannel, (states: Map) => { - states.forEach((state, id) => { - const workspace = this.getById(id); - if (workspace) { - workspace.setState(state); - } - }); + const workspaceStates: workspaceStateSync[] = await requestMain(this.stateRequestChannel); + console.log(workspaceStates); + workspaceStates.forEach((workspaceState) => { + const workspace = this.getById(workspaceState.id); + if (workspace) { + workspace.setState(workspaceState.state); + } }); } else { - handleRequest(this.stateRequestChannel, (): Map => { - const states = new Map(); + handleRequest(this.stateRequestChannel, (): workspaceStateSync[] => { + const states: workspaceStateSync[] = []; this.workspacesList.forEach((workspace) => { - states.set(workspace.id, workspace.getState()); + states.push({ + state: workspace.getState(), + id: workspace.id + }); }); return states; });