|
@@ -1,12 +1,13 @@
|
|
import { Box, Grid } from '@mui/material';
|
|
import { Box, Grid } from '@mui/material';
|
|
import { useEffect } from 'react';
|
|
import { useEffect } from 'react';
|
|
import { connect, useDispatch } from 'react-redux';
|
|
import { connect, useDispatch } from 'react-redux';
|
|
-import { Route, Routes, useParams } from 'react-router-dom';
|
|
|
|
|
|
+import { Navigate, Route, Routes, useLocation, useParams } from 'react-router-dom';
|
|
import { actionCatById } from '../../actions/actionCatById';
|
|
import { actionCatById } from '../../actions/actionCatById';
|
|
import { actionGoodById } from '../../actions/actionGoodById';
|
|
import { actionGoodById } from '../../actions/actionGoodById';
|
|
import { actionGoodsFind } from '../../actions/actionGoodsFind';
|
|
import { actionGoodsFind } from '../../actions/actionGoodsFind';
|
|
import { AdminLayoutPage } from '../admin/AdminLayoutPage';
|
|
import { AdminLayoutPage } from '../admin/AdminLayoutPage';
|
|
import { CartPage } from '../CartPage';
|
|
import { CartPage } from '../CartPage';
|
|
|
|
+import { Error404 } from '../common/Error404';
|
|
import { GoodList } from '../common/GoodList';
|
|
import { GoodList } from '../common/GoodList';
|
|
import { CProtectedRoute, ProtectedRoute } from '../common/ProtectedRoute';
|
|
import { CProtectedRoute, ProtectedRoute } from '../common/ProtectedRoute';
|
|
import { GoodPage } from '../GoodPage';
|
|
import { GoodPage } from '../GoodPage';
|
|
@@ -20,7 +21,10 @@ import { MainPage } from '../MainPage';
|
|
const GoodsPageContainer = () => {
|
|
const GoodsPageContainer = () => {
|
|
const params = useParams();
|
|
const params = useParams();
|
|
const dispatch = useDispatch();
|
|
const dispatch = useDispatch();
|
|
- dispatch(actionCatById({ _id: params._id }));
|
|
|
|
|
|
+ if (params._id) {
|
|
|
|
+ console.log(params._id);
|
|
|
|
+ dispatch(actionCatById({ _id: params._id }));
|
|
|
|
+ }
|
|
|
|
|
|
return <CGoodsPage />;
|
|
return <CGoodsPage />;
|
|
};
|
|
};
|
|
@@ -45,34 +49,39 @@ const GoodsListContainer = () => {
|
|
return <CGoodsList />;
|
|
return <CGoodsList />;
|
|
};
|
|
};
|
|
|
|
|
|
-export const LayoutPage = () => (
|
|
|
|
- <Box className="LayoutPage">
|
|
|
|
- <Header />
|
|
|
|
- <Grid container columns={14} rows={1}>
|
|
|
|
- <Grid xs={3} item>
|
|
|
|
- <Aside />
|
|
|
|
|
|
+export const LayoutPage = () => {
|
|
|
|
+ const location = useLocation();
|
|
|
|
+ return (
|
|
|
|
+ <Box className="LayoutPage">
|
|
|
|
+ <Header />
|
|
|
|
+ <Grid container columns={14} rows={1}>
|
|
|
|
+ <Grid xs={location.pathname.match(/(\/categor)|(\/good)|(\/order)*/) ? 3 : 0} item>
|
|
|
|
+ <Aside />
|
|
|
|
+ </Grid>
|
|
|
|
+ <Grid xs={location.pathname.match(/(\/categor)|(\/good)|(\/order)*/) ? 11 : 14} item>
|
|
|
|
+ <Content>
|
|
|
|
+ <Routes>
|
|
|
|
+ <Route path="/" exact element={<MainPage />} />
|
|
|
|
+ <Route path="/cart" exact element={<CartPage />} />
|
|
|
|
+ <Route path="/search/:searchData/" element={<GoodsListContainer />} exact />
|
|
|
|
+ <Route path="/category/:_id" element={<GoodsPageContainer />} />
|
|
|
|
+ <Route path="/category/" element={<GoodsPageContainer />} />
|
|
|
|
+ <Route path="/good/:_id" element={<GoodPageContainer />} />
|
|
|
|
+ <Route
|
|
|
|
+ path="/admin/*"
|
|
|
|
+ exact
|
|
|
|
+ element={
|
|
|
|
+ <CProtectedRoute roles={['admin']} fallback="/auth">
|
|
|
|
+ <AdminLayoutPage />
|
|
|
|
+ </CProtectedRoute>
|
|
|
|
+ }
|
|
|
|
+ />
|
|
|
|
+ <Route path="*" element={<Navigate to="/404" />} />
|
|
|
|
+ </Routes>
|
|
|
|
+ </Content>
|
|
|
|
+ </Grid>
|
|
</Grid>
|
|
</Grid>
|
|
- <Grid xs={11} item>
|
|
|
|
- <Content>
|
|
|
|
- <Routes>
|
|
|
|
- <Route path="/" exact element={<MainPage />} />
|
|
|
|
- <Route path="/cart" exact element={<CartPage />} />
|
|
|
|
- <Route path="/search/:searchData/" element={<GoodsListContainer />} exact />
|
|
|
|
- <Route path="/category/:_id" element={<GoodsPageContainer />} />
|
|
|
|
- <Route path="/category/" element={<GoodsPageContainer />} />
|
|
|
|
- <Route path="/good/:_id" element={<GoodPageContainer />} />
|
|
|
|
- <Route
|
|
|
|
- path="/admin/*"
|
|
|
|
- element={
|
|
|
|
- <CProtectedRoute roles={['admin']} fallback="/auth">
|
|
|
|
- <AdminLayoutPage />
|
|
|
|
- </CProtectedRoute>
|
|
|
|
- }
|
|
|
|
- />
|
|
|
|
- </Routes>
|
|
|
|
- </Content>
|
|
|
|
- </Grid>
|
|
|
|
- </Grid>
|
|
|
|
- <Footer />
|
|
|
|
- </Box>
|
|
|
|
-);
|
|
|
|
|
|
+ <Footer />
|
|
|
|
+ </Box>
|
|
|
|
+ );
|
|
|
|
+};
|