/
routes.tsx
48 lines (43 loc) · 1.25 KB
/
routes.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import React, { Suspense, lazy } from "react";
import Helmet from "react-helmet";
import { Route } from "@webiny/react-router";
import { CircularProgress } from "@webiny/ui/Progress";
import { AdminLayout } from "@webiny/app-admin/components/AdminLayout";
import { RoutePlugin } from "@webiny/app/plugins/RoutePlugin";
interface LoaderProps {
children: React.ReactNode;
[key: string]: any;
}
/**
* Registers new "/target-data-models" route.
*/
const Loader = ({ children, ...props }: LoaderProps) => (
<Suspense fallback={<CircularProgress />}>
{React.cloneElement(children as unknown as React.ReactElement, props)}
</Suspense>
);
const TargetDataModels = lazy(
() =>
import(
/* webpackChunkName: "TargetDataModelsRoutes" */
"./views"
)
);
export default new RoutePlugin({
route: (
<Route
path={"/target-data-models"}
exact
render={() => (
<AdminLayout>
<Helmet>
<title>Target Data Models</title>
</Helmet>
<Loader>
<TargetDataModels />
</Loader>
</AdminLayout>
)}
/>
)
});