2023-01-11 14:39:06 +05:30
|
|
|
import { ConfigProvider } from 'antd';
|
2021-08-26 11:50:47 +05:30
|
|
|
import NotFound from 'components/NotFound';
|
|
|
|
|
import Spinner from 'components/Spinner';
|
2021-10-20 09:24:55 +05:30
|
|
|
import AppLayout from 'container/AppLayout';
|
2023-01-11 14:39:06 +05:30
|
|
|
import { useThemeConfig } from 'hooks/useDarkMode';
|
2023-02-12 04:23:00 +01:00
|
|
|
import { NotificationProvider } from 'hooks/useNotifications';
|
2023-03-29 14:45:58 +05:30
|
|
|
import { ResourceProvider } from 'hooks/useResourceAttribute';
|
2021-09-23 15:43:43 +05:30
|
|
|
import history from 'lib/history';
|
2023-03-24 13:39:31 +02:00
|
|
|
import { QueryBuilderProvider } from 'providers/QueryBuilder';
|
2021-08-26 11:50:47 +05:30
|
|
|
import React, { Suspense } from 'react';
|
2022-05-03 15:27:09 +05:30
|
|
|
import { Route, Router, Switch } from 'react-router-dom';
|
2021-08-23 11:38:25 +05:30
|
|
|
|
2022-05-03 15:27:09 +05:30
|
|
|
import PrivateRoute from './Private';
|
2021-08-26 11:50:47 +05:30
|
|
|
import routes from './routes';
|
2021-08-23 11:38:25 +05:30
|
|
|
|
2022-03-22 12:10:31 +05:30
|
|
|
function App(): JSX.Element {
|
2023-01-11 14:39:06 +05:30
|
|
|
const themeConfig = useThemeConfig();
|
|
|
|
|
|
2021-12-02 18:53:05 +05:30
|
|
|
return (
|
2023-01-11 14:39:06 +05:30
|
|
|
<ConfigProvider theme={themeConfig}>
|
2023-03-29 14:45:58 +05:30
|
|
|
<Router history={history}>
|
|
|
|
|
<NotificationProvider>
|
2023-03-24 14:46:28 +02:00
|
|
|
<PrivateRoute>
|
2023-03-29 14:45:58 +05:30
|
|
|
<ResourceProvider>
|
|
|
|
|
<QueryBuilderProvider>
|
|
|
|
|
<AppLayout>
|
|
|
|
|
<Suspense fallback={<Spinner size="large" tip="Loading..." />}>
|
|
|
|
|
<Switch>
|
|
|
|
|
{routes.map(({ path, component, exact }) => (
|
|
|
|
|
<Route
|
|
|
|
|
key={`${path}`}
|
|
|
|
|
exact={exact}
|
|
|
|
|
path={path}
|
|
|
|
|
component={component}
|
|
|
|
|
/>
|
|
|
|
|
))}
|
2022-05-03 15:27:09 +05:30
|
|
|
|
2023-03-29 14:45:58 +05:30
|
|
|
<Route path="*" component={NotFound} />
|
|
|
|
|
</Switch>
|
|
|
|
|
</Suspense>
|
|
|
|
|
</AppLayout>
|
|
|
|
|
</QueryBuilderProvider>
|
|
|
|
|
</ResourceProvider>
|
2023-03-24 14:46:28 +02:00
|
|
|
</PrivateRoute>
|
2023-03-29 14:45:58 +05:30
|
|
|
</NotificationProvider>
|
|
|
|
|
</Router>
|
2023-01-11 14:39:06 +05:30
|
|
|
</ConfigProvider>
|
2021-12-02 18:53:05 +05:30
|
|
|
);
|
2022-03-22 12:10:31 +05:30
|
|
|
}
|
2021-12-02 18:53:05 +05:30
|
|
|
|
2021-08-23 11:38:25 +05:30
|
|
|
export default App;
|