|
@@ -1,5 +1,5 @@
|
|
|
-import React, { lazy, Suspense, useEffect, useState } from 'react';
|
|
|
-import { Route, Routes, useLocation, useNavigate } from "react-router-dom";
|
|
|
+import React, { Suspense, useEffect, useState } from 'react';
|
|
|
+import { Outlet, useLocation } from "react-router-dom";
|
|
|
import NavTabs from "./NavTabs";
|
|
|
import { makeStyles } from '@material-ui/styles';
|
|
|
import { Box } from '@material-ui/core';
|
|
@@ -7,27 +7,6 @@ import { func } from "prop-types";
|
|
|
import Snackbars from "./util/Snackbars";
|
|
|
import { LoadingBody } from "./Loading";
|
|
|
|
|
|
-// route-based lazy loading of components according to https://legacy.reactjs.org/docs/code-splitting.html#route-based-code-splitting and https://react.dev/reference/react/lazy#load
|
|
|
-const Home = lazy(() => import('./Home'));
|
|
|
-
|
|
|
-const AddMeal = lazy(() => import('./Meals/AddMeal'));
|
|
|
-const EditMeal = lazy(() => import('./Meals/EditMeal'));
|
|
|
-const OwnMeals = lazy(() => import('./Meals/OwnMeals'));
|
|
|
-const MealDetailView = lazy(() => import('./Meals/MealDetailView'));
|
|
|
-
|
|
|
-const AddPlanItem = lazy(() => import('./Plans/AddPlanItem'));
|
|
|
-const EditPlanItem = lazy(() => import('./Plans/EditPlanItem'));
|
|
|
-const OwnPlans = lazy(() => import('./Plans/OwnPlans'));
|
|
|
-const ShoppingList = lazy(() => import('./Plans/ShoppingList'));
|
|
|
-
|
|
|
-const Social = lazy(() => import('./Social/Social'));
|
|
|
-const ContactsContent = lazy(() => import('./Social/ContactsContent'));
|
|
|
-
|
|
|
-const Settings = lazy(() => import('./Settings/Settings'));
|
|
|
-const AdvancedSettings = lazy(() => import('./Settings/AdvancedSettings'));
|
|
|
-const EditProfile = lazy(() => import('./Settings/EditProfile'));
|
|
|
-
|
|
|
-
|
|
|
const useStyles = makeStyles(theme => ({
|
|
|
content: {
|
|
|
height: `calc(100% - ${process.env.REACT_APP_NAV_BOTTOM_HEIGHT}px)`,
|
|
@@ -42,7 +21,6 @@ const useStyles = makeStyles(theme => ({
|
|
|
*/
|
|
|
const ContentWrapper = (props) => {
|
|
|
const classes = useStyles();
|
|
|
- let navigate = useNavigate();
|
|
|
let { state } = useLocation();
|
|
|
|
|
|
const [deletedItem, setDeletedItem] = useState(null);
|
|
@@ -58,36 +36,11 @@ const ContentWrapper = (props) => {
|
|
|
}
|
|
|
}, [state]);
|
|
|
|
|
|
- const goToPlans = () => {navigate('plans');};
|
|
|
-
|
|
|
return (
|
|
|
<>
|
|
|
<Box className={classes.content}>
|
|
|
<Suspense fallback={<LoadingBody />}>
|
|
|
- <Routes>
|
|
|
- <Route path="/" element={<Home />} />
|
|
|
- <Route path="meals">
|
|
|
- <Route index element={<OwnMeals />} />
|
|
|
- <Route path="add" element={<AddMeal />} />
|
|
|
- <Route path={'detail/:mealId'} element={<MealDetailView />} />
|
|
|
- <Route path={'edit/:mealId'} element={<EditMeal />} />
|
|
|
- </Route>
|
|
|
- <Route path="plans">
|
|
|
- <Route index element={<OwnPlans />} />
|
|
|
- <Route path="add" element={<AddPlanItem onDoneAdding={goToPlans} />} />
|
|
|
- <Route path="edit/:planItemId" element={<EditPlanItem />} />
|
|
|
- <Route path="shoppingList/:userId" element={<ShoppingList />} />
|
|
|
- </Route>
|
|
|
- <Route path="social">
|
|
|
- <Route index element={<Social />} />
|
|
|
- <Route path="contact/:userId/:tab" element={<ContactsContent />} />
|
|
|
- </Route>
|
|
|
- <Route path="settings">
|
|
|
- <Route index element={<Settings />} />
|
|
|
- <Route path="editProfile" element={<EditProfile />} />
|
|
|
- <Route path="advanced" element={<AdvancedSettings setDarkModeInAppLevel={props.setDarkMode} />} />
|
|
|
- </Route>
|
|
|
- </Routes>
|
|
|
+ <Outlet />
|
|
|
<Snackbars category={deletedItemCategory} deletedItem={deletedItem} />
|
|
|
</Suspense>
|
|
|
</Box>
|