mirror of https://github.com/coder/coder.git
51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
import CssBaseline from "@mui/material/CssBaseline"
|
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query"
|
|
import { AuthProvider } from "components/AuthProvider/AuthProvider"
|
|
import { FC, PropsWithChildren } from "react"
|
|
import { HelmetProvider } from "react-helmet-async"
|
|
import { AppRouter } from "./AppRouter"
|
|
import { ErrorBoundary } from "./components/ErrorBoundary/ErrorBoundary"
|
|
import { GlobalSnackbar } from "./components/GlobalSnackbar/GlobalSnackbar"
|
|
import { dark } from "./theme"
|
|
import "./theme/globalFonts"
|
|
import { StyledEngineProvider, ThemeProvider } from "@mui/material/styles"
|
|
|
|
const queryClient = new QueryClient({
|
|
defaultOptions: {
|
|
queries: {
|
|
retry: false,
|
|
cacheTime: 0,
|
|
refetchOnWindowFocus: false,
|
|
networkMode: "offlineFirst",
|
|
},
|
|
},
|
|
})
|
|
|
|
export const AppProviders: FC<PropsWithChildren> = ({ children }) => {
|
|
return (
|
|
<HelmetProvider>
|
|
<StyledEngineProvider injectFirst>
|
|
<ThemeProvider theme={dark}>
|
|
<CssBaseline enableColorScheme />
|
|
<ErrorBoundary>
|
|
<QueryClientProvider client={queryClient}>
|
|
<AuthProvider>
|
|
{children}
|
|
<GlobalSnackbar />
|
|
</AuthProvider>
|
|
</QueryClientProvider>
|
|
</ErrorBoundary>
|
|
</ThemeProvider>
|
|
</StyledEngineProvider>
|
|
</HelmetProvider>
|
|
)
|
|
}
|
|
|
|
export const App: FC = () => {
|
|
return (
|
|
<AppProviders>
|
|
<AppRouter />
|
|
</AppProviders>
|
|
)
|
|
}
|