aboutsummaryrefslogtreecommitdiffstats
path: root/packages/renderer
diff options
context:
space:
mode:
Diffstat (limited to 'packages/renderer')
-rw-r--r--packages/renderer/src/index.tsx2
-rw-r--r--packages/renderer/src/stores/RendererStore.ts15
2 files changed, 9 insertions, 8 deletions
diff --git a/packages/renderer/src/index.tsx b/packages/renderer/src/index.tsx
index 60ef714..a408c4d 100644
--- a/packages/renderer/src/index.tsx
+++ b/packages/renderer/src/index.tsx
@@ -46,7 +46,7 @@ if (isDevelopment) {
46 46
47const { sophieRenderer: ipc } = window; 47const { sophieRenderer: ipc } = window;
48 48
49const store = createAndConnectRendererStore(ipc); 49const store = await createAndConnectRendererStore(ipc);
50 50
51if (isDevelopment) { 51if (isDevelopment) {
52 exposeToReduxDevtools(store).catch((error) => { 52 exposeToReduxDevtools(store).catch((error) => {
diff --git a/packages/renderer/src/stores/RendererStore.ts b/packages/renderer/src/stores/RendererStore.ts
index f48d484..7052162 100644
--- a/packages/renderer/src/stores/RendererStore.ts
+++ b/packages/renderer/src/stores/RendererStore.ts
@@ -66,27 +66,28 @@ export default RendererStore;
66 * the newly created store via `ipc`. 66 * the newly created store via `ipc`.
67 * 67 *
68 * @param ipc The `sophieRenderer` context bridge. 68 * @param ipc The `sophieRenderer` context bridge.
69 * @returns A promise that resolves to the store once it was initialized.
69 */ 70 */
70export function createAndConnectRendererStore( 71export async function createAndConnectRendererStore(
71 ipc: SophieRenderer, 72 ipc: SophieRenderer,
72): RendererStore { 73): Promise<RendererStore> {
73 const env: RendererEnv = { 74 const env: RendererEnv = {
74 dispatchMainAction: ipc.dispatchAction, 75 dispatchMainAction: ipc.dispatchAction,
75 }; 76 };
76 const store = RendererStore.create({}, env); 77 const store = RendererStore.create({}, env);
77 78
78 ipc 79 try {
79 .onSharedStoreChange({ 80 await ipc.onSharedStoreChange({
80 onSnapshot(snapshot) { 81 onSnapshot(snapshot) {
81 applySnapshot(store.shared, snapshot); 82 applySnapshot(store.shared, snapshot);
82 }, 83 },
83 onPatch(patch) { 84 onPatch(patch) {
84 applyPatch(store.shared, patch); 85 applyPatch(store.shared, patch);
85 }, 86 },
86 })
87 .catch((error) => {
88 log.error('Failed to connect to shared store', error);
89 }); 87 });
88 } catch (error) {
89 log.error('Failed to connect to shared store', error);
90 }
90 91
91 return store; 92 return store;
92} 93}