aboutsummaryrefslogtreecommitdiffstats
path: root/packages/preload/src/contextBridge/SophieRendererImpl.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/preload/src/contextBridge/SophieRendererImpl.ts')
-rw-r--r--packages/preload/src/contextBridge/SophieRendererImpl.ts8
1 files changed, 4 insertions, 4 deletions
diff --git a/packages/preload/src/contextBridge/SophieRendererImpl.ts b/packages/preload/src/contextBridge/SophieRendererImpl.ts
index 18ab07e..4c24b74 100644
--- a/packages/preload/src/contextBridge/SophieRendererImpl.ts
+++ b/packages/preload/src/contextBridge/SophieRendererImpl.ts
@@ -35,7 +35,7 @@ class SophieRendererImpl implements SophieRenderer {
35 35
36 private listener: SharedStoreListener | null = null; 36 private listener: SharedStoreListener | null = null;
37 37
38 constructor() { 38 constructor(private readonly allowReplaceListener: boolean) {
39 ipcRenderer.on(MainToRendererIpcMessage.SharedStorePatch, (_event, patch) => { 39 ipcRenderer.on(MainToRendererIpcMessage.SharedStorePatch, (_event, patch) => {
40 try { 40 try {
41 // `mobx-state-tree` will validate the patch, so we can safely cast here. 41 // `mobx-state-tree` will validate the patch, so we can safely cast here.
@@ -48,7 +48,7 @@ class SophieRendererImpl implements SophieRenderer {
48 } 48 }
49 49
50 async onSharedStoreChange(listener: SharedStoreListener): Promise<void> { 50 async onSharedStoreChange(listener: SharedStoreListener): Promise<void> {
51 if (this.onSharedStoreChangeCalled) { 51 if (this.onSharedStoreChangeCalled && !this.allowReplaceListener) {
52 throw new Error('Shared store change listener was already set'); 52 throw new Error('Shared store change listener was already set');
53 } 53 }
54 this.onSharedStoreChangeCalled = true; 54 this.onSharedStoreChangeCalled = true;
@@ -86,8 +86,8 @@ class SophieRendererImpl implements SophieRenderer {
86 } 86 }
87} 87}
88 88
89export function createSophieRenderer(): SophieRenderer { 89export function createSophieRenderer(allowReplaceListener: boolean): SophieRenderer {
90 const impl = new SophieRendererImpl(); 90 const impl = new SophieRendererImpl(allowReplaceListener);
91 return { 91 return {
92 onSharedStoreChange: impl.onSharedStoreChange.bind(impl), 92 onSharedStoreChange: impl.onSharedStoreChange.bind(impl),
93 dispatchAction: impl.dispatchAction.bind(impl), 93 dispatchAction: impl.dispatchAction.bind(impl),