aboutsummaryrefslogtreecommitdiffstats
path: root/packages/renderer/src/index.tsx
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2022-05-08 23:10:29 +0200
committerLibravatar Kristóf Marussy <kristof@marussy.com>2022-05-16 00:55:03 +0200
commitc96b88b66097d58f901be4ae2831883b7472ca86 (patch)
tree50e1226e43a0cf993fc2bac8673c0e9c5796ce7d /packages/renderer/src/index.tsx
parentfix: vite dev server race condition (diff)
downloadsophie-c96b88b66097d58f901be4ae2831883b7472ca86.tar.gz
sophie-c96b88b66097d58f901be4ae2831883b7472ca86.tar.zst
sophie-c96b88b66097d58f901be4ae2831883b7472ca86.zip
fix: react suspense race condition
The top-level Suspense might trigger before the StoreProvider sets the store, which causes an error to be thrown in the useStore hook. We pass the store explicitly as a prop into the components that should load before the Suspense, which gets rid of the error. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
Diffstat (limited to 'packages/renderer/src/index.tsx')
-rw-r--r--packages/renderer/src/index.tsx18
1 files changed, 9 insertions, 9 deletions
diff --git a/packages/renderer/src/index.tsx b/packages/renderer/src/index.tsx
index 726e00e..9971469 100644
--- a/packages/renderer/src/index.tsx
+++ b/packages/renderer/src/index.tsx
@@ -74,16 +74,16 @@ const App = lazy(() => import('./components/App'));
74function Root(): JSX.Element { 74function Root(): JSX.Element {
75 return ( 75 return (
76 <React.StrictMode> 76 <React.StrictMode>
77 <StoreProvider store={store}> 77 <RtlCacheProvider store={store} rtlCache={rtlCache}>
78 <RtlCacheProvider rtlCache={rtlCache}> 78 <ThemeProvider store={store}>
79 <ThemeProvider> 79 <CssBaseline enableColorScheme />
80 <CssBaseline enableColorScheme /> 80 <Suspense fallback={<Loading />}>
81 <Suspense fallback={<Loading />}> 81 <StoreProvider store={store}>
82 <App devMode={isDevelopment} /> 82 <App devMode={isDevelopment} />
83 </Suspense> 83 </StoreProvider>
84 </ThemeProvider> 84 </Suspense>
85 </RtlCacheProvider> 85 </ThemeProvider>
86 </StoreProvider> 86 </RtlCacheProvider>
87 </React.StrictMode> 87 </React.StrictMode>
88 ); 88 );
89} 89}