diff options
Diffstat (limited to 'packages/preload/src/contextBridge/SophieRendererImpl.ts')
-rw-r--r-- | packages/preload/src/contextBridge/SophieRendererImpl.ts | 8 |
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 | ||
89 | export function createSophieRenderer(): SophieRenderer { | 89 | export 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), |