aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/frontend/src/App.tsx
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2022-10-07 19:44:41 +0200
committerLibravatar Kristóf Marussy <kristof@marussy.com>2022-11-05 19:41:14 +0100
commitabe176d0888c0fdcc803ddafe71a5cee9f4b63a0 (patch)
treeea7d5722c8e981ba540e648fbacbfd0e4a55768a /subprojects/frontend/src/App.tsx
parentfix: test and lint failures (diff)
downloadrefinery-abe176d0888c0fdcc803ddafe71a5cee9f4b63a0.tar.gz
refinery-abe176d0888c0fdcc803ddafe71a5cee9f4b63a0.tar.zst
refinery-abe176d0888c0fdcc803ddafe71a5cee9f4b63a0.zip
refactor(frontend): improve HMR experience
Use a HMR acceptor as in https://github.com/vitejs/vite/issues/10227#issuecomment-1256969751 Also updates frontend tooling to the latest version (yarn now support typescript 4.8.4)
Diffstat (limited to 'subprojects/frontend/src/App.tsx')
-rw-r--r--subprojects/frontend/src/App.tsx44
1 files changed, 28 insertions, 16 deletions
diff --git a/subprojects/frontend/src/App.tsx b/subprojects/frontend/src/App.tsx
index 90514044..a471690b 100644
--- a/subprojects/frontend/src/App.tsx
+++ b/subprojects/frontend/src/App.tsx
@@ -1,21 +1,33 @@
1import Grow from '@mui/material/Grow'; 1import Box from '@mui/material/Box';
2import Stack from '@mui/material/Stack'; 2import CssBaseline from '@mui/material/CssBaseline';
3import { SnackbarProvider } from 'notistack'; 3import React, { StrictMode, Suspense, lazy } from 'react';
4import React from 'react';
5 4
6import TopBar from './TopBar'; 5import Loading from './Loading';
7import UpdateNotification from './UpdateNotification'; 6import type RootStore from './RootStore';
8import EditorPane from './editor/EditorPane'; 7import RootStoreProvider from './RootStoreProvider';
8import WindowControlsOverlayColor from './WindowControlsOverlayColor';
9import ThemeProvider from './theme/ThemeProvider';
9 10
10export default function App(): JSX.Element { 11const Refinery = lazy(() => import('./Refinery.js'));
12
13export default function App({
14 rootStore,
15}: {
16 rootStore: RootStore;
17}): JSX.Element {
11 return ( 18 return (
12 // @ts-expect-error -- notistack has problems with `exactOptionalPropertyTypes 19 <StrictMode>
13 <SnackbarProvider TransitionComponent={Grow}> 20 <RootStoreProvider rootStore={rootStore}>
14 <UpdateNotification /> 21 <ThemeProvider>
15 <Stack direction="column" height="100vh" overflow="auto"> 22 <CssBaseline enableColorScheme />
16 <TopBar /> 23 <WindowControlsOverlayColor />
17 <EditorPane /> 24 <Box height="100vh" overflow="auto">
18 </Stack> 25 <Suspense fallback={<Loading />}>
19 </SnackbarProvider> 26 <Refinery />
27 </Suspense>
28 </Box>
29 </ThemeProvider>
30 </RootStoreProvider>
31 </StrictMode>
20 ); 32 );
21} 33}