aboutsummaryrefslogtreecommitdiffstats
path: root/packages/renderer
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2021-12-24 01:36:20 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2021-12-24 01:36:20 +0100
commitcf3ec7fc396125ed452c553b34ae2737329fc61d (patch)
tree6d2fdbb40b9c9b1d32168d1ccb2372b5602f1968 /packages/renderer
parentfeat: Set up partition persistence (diff)
downloadsophie-cf3ec7fc396125ed452c553b34ae2737329fc61d.tar.gz
sophie-cf3ec7fc396125ed452c553b34ae2737329fc61d.tar.zst
sophie-cf3ec7fc396125ed452c553b34ae2737329fc61d.zip
feat: Service to main process communication
Diffstat (limited to 'packages/renderer')
-rw-r--r--packages/renderer/src/devTools.ts13
-rw-r--r--packages/renderer/src/index.tsx6
2 files changed, 18 insertions, 1 deletions
diff --git a/packages/renderer/src/devTools.ts b/packages/renderer/src/devTools.ts
index ffd99e6..44c87ae 100644
--- a/packages/renderer/src/devTools.ts
+++ b/packages/renderer/src/devTools.ts
@@ -55,3 +55,16 @@ export function exposeToReduxDevtools(model: IAnyStateTreeNode): void {
55 console.error('Could not connect to Redux devtools', err); 55 console.error('Could not connect to Redux devtools', err);
56 }); 56 });
57} 57}
58
59/**
60 * Sends a message to the main process to reload all services when
61 * `build/watch.js` sends a reload event on bundle write.
62 */
63export function hotReloadServices(): void {
64 import.meta.hot?.on(
65 'sophie:reload-services',
66 () => {
67 window.sophieRenderer.reloadAllServices();
68 },
69 );
70}
diff --git a/packages/renderer/src/index.tsx b/packages/renderer/src/index.tsx
index 90cba2c..0919b93 100644
--- a/packages/renderer/src/index.tsx
+++ b/packages/renderer/src/index.tsx
@@ -29,11 +29,15 @@ import { render } from 'react-dom';
29import { App } from './components/App'; 29import { App } from './components/App';
30import { StoreProvider } from './components/StoreProvider'; 30import { StoreProvider } from './components/StoreProvider';
31import { ThemeProvider } from './components/ThemeProvider'; 31import { ThemeProvider } from './components/ThemeProvider';
32import { exposeToReduxDevtools } from './devTools'; 32import { exposeToReduxDevtools, hotReloadServices } from './devTools';
33import { createAndConnectRootStore } from './stores/RootStore'; 33import { createAndConnectRootStore } from './stores/RootStore';
34 34
35const isDevelopment = import.meta.env.MODE === 'development'; 35const isDevelopment = import.meta.env.MODE === 'development';
36 36
37if (isDevelopment) {
38 hotReloadServices();
39}
40
37const store = createAndConnectRootStore(window.sophieRenderer); 41const store = createAndConnectRootStore(window.sophieRenderer);
38 42
39if (isDevelopment) { 43if (isDevelopment) {