fix: suspense for lazy loaded pages

Add suspense to track the route splitted modules, this will make sure that the sidebar and navbar is not unmounted whenever modules start fetching.
This commit is contained in:
Yash Joshi 2021-06-05 12:38:37 +05:30
parent 362f264bae
commit 3ff7ace54e

View File

@ -33,34 +33,40 @@ const App = () => {
<Switch> <Switch>
<RouteProvider> <RouteProvider>
<BaseLayout> <BaseLayout>
<Route path={ROUTES.SIGN_UP} exact component={Signup} /> <Suspense fallback={<Spin size="large" />}>
<Route path={ROUTES.APPLICATION} exact component={ServicesTable} /> <Route path={ROUTES.SIGN_UP} exact component={Signup} />
<Route path={ROUTES.SERVICE_METRICS} exact component={ServiceMetrics} /> <Route path={ROUTES.APPLICATION} exact component={ServicesTable} />
<Route path={ROUTES.SERVICE_MAP} exact component={ServiceMap} /> <Route
<Route path={ROUTES.TRACES} exact component={TraceDetail} /> path={ROUTES.SERVICE_METRICS}
<Route path={ROUTES.TRACE_GRAPH} exact component={TraceGraph} /> exact
<Route path={ROUTES.SETTINGS} exact component={SettingsPage} /> component={ServiceMetrics}
<Route />
path={ROUTES.INSTRUMENTATION} <Route path={ROUTES.SERVICE_MAP} exact component={ServiceMap} />
exact <Route path={ROUTES.TRACES} exact component={TraceDetail} />
component={IntstrumentationPage} <Route path={ROUTES.TRACE_GRAPH} exact component={TraceGraph} />
/> <Route path={ROUTES.SETTINGS} exact component={SettingsPage} />
<Route <Route
path={ROUTES.USAGE_EXPLORER} path={ROUTES.INSTRUMENTATION}
exactexact exact
component={UsageExplorer} component={IntstrumentationPage}
/> />
<Route <Route
path="/" path={ROUTES.USAGE_EXPLORER}
exact exactexact
render={() => { component={UsageExplorer}
return localStorage.getItem(IS_LOGGED_IN) === "yes" ? ( />
<Redirect to={ROUTES.APPLICATION} /> <Route
) : ( path="/"
<Redirect to={ROUTES.SIGN_UP} /> exact
); render={() => {
}} return localStorage.getItem(IS_LOGGED_IN) === "yes" ? (
/> <Redirect to={ROUTES.APPLICATION} />
) : (
<Redirect to={ROUTES.SIGN_UP} />
);
}}
/>
</Suspense>
</BaseLayout> </BaseLayout>
</RouteProvider> </RouteProvider>
</Switch> </Switch>