diff options
author | Kristóf Marussy <kristof@marussy.com> | 2021-12-24 01:36:20 +0100 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2021-12-24 01:36:20 +0100 |
commit | cf3ec7fc396125ed452c553b34ae2737329fc61d (patch) | |
tree | 6d2fdbb40b9c9b1d32168d1ccb2372b5602f1968 /packages/renderer/src | |
parent | feat: Set up partition persistence (diff) | |
download | sophie-cf3ec7fc396125ed452c553b34ae2737329fc61d.tar.gz sophie-cf3ec7fc396125ed452c553b34ae2737329fc61d.tar.zst sophie-cf3ec7fc396125ed452c553b34ae2737329fc61d.zip |
feat: Service to main process communication
Diffstat (limited to 'packages/renderer/src')
-rw-r--r-- | packages/renderer/src/devTools.ts | 13 | ||||
-rw-r--r-- | packages/renderer/src/index.tsx | 6 |
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 | */ | ||
63 | export 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'; | |||
29 | import { App } from './components/App'; | 29 | import { App } from './components/App'; |
30 | import { StoreProvider } from './components/StoreProvider'; | 30 | import { StoreProvider } from './components/StoreProvider'; |
31 | import { ThemeProvider } from './components/ThemeProvider'; | 31 | import { ThemeProvider } from './components/ThemeProvider'; |
32 | import { exposeToReduxDevtools } from './devTools'; | 32 | import { exposeToReduxDevtools, hotReloadServices } from './devTools'; |
33 | import { createAndConnectRootStore } from './stores/RootStore'; | 33 | import { createAndConnectRootStore } from './stores/RootStore'; |
34 | 34 | ||
35 | const isDevelopment = import.meta.env.MODE === 'development'; | 35 | const isDevelopment = import.meta.env.MODE === 'development'; |
36 | 36 | ||
37 | if (isDevelopment) { | ||
38 | hotReloadServices(); | ||
39 | } | ||
40 | |||
37 | const store = createAndConnectRootStore(window.sophieRenderer); | 41 | const store = createAndConnectRootStore(window.sophieRenderer); |
38 | 42 | ||
39 | if (isDevelopment) { | 43 | if (isDevelopment) { |