diff options
author | Kristóf Marussy <kristof@marussy.com> | 2022-05-08 23:10:29 +0200 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2022-05-16 00:55:03 +0200 |
commit | c96b88b66097d58f901be4ae2831883b7472ca86 (patch) | |
tree | 50e1226e43a0cf993fc2bac8673c0e9c5796ce7d /packages/renderer/src/index.tsx | |
parent | fix: vite dev server race condition (diff) | |
download | sophie-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.tsx | 18 |
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')); | |||
74 | function Root(): JSX.Element { | 74 | function 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 | } |