@@ -21,7 +21,7 @@ import { changeDrawer } from '../../store/actions/mainActions';
2121import { StoreModel } from '../../models/storeModel' ;
2222import PeopleAltOutlinedIcon from '@material-ui/icons/PeopleAltOutlined' ;
2323import { useHistory , useLocation } from 'react-router' ;
24- import { adminRoutes , routes } from '../../utils/routes' ;
24+ import { adminRoutes , reportsRoutes , routes } from '../../utils/routes' ;
2525import ExpandLess from '@material-ui/icons/ExpandLess' ;
2626import ExpandMore from '@material-ui/icons/ExpandMore' ;
2727import { useState } from 'react' ;
@@ -35,6 +35,7 @@ import PlaylistAddCheckIcon from '@material-ui/icons/PlaylistAddCheck';
3535import EmojiPeopleIcon from '@material-ui/icons/EmojiPeople' ;
3636import AttachMoneyIcon from '@material-ui/icons/AttachMoney' ;
3737import PointOfSaleIcon from '@mui/icons-material/PointOfSale' ;
38+ import AssessmentIcon from '@mui/icons-material/Assessment' ;
3839
3940const Appbar = ( ) => {
4041 const open = useSelector ( ( state : StoreModel ) => state . mainStore . isDrawerOpen ) ;
@@ -45,11 +46,16 @@ const Appbar = () => {
4546 const history = useHistory ( ) ;
4647 const location = useLocation ( ) ;
4748 const [ openSubMenu , setOpenSubMenu ] = useState ( false ) ;
49+ const [ openReports , setOpenReports ] = useState ( false ) ;
4850
4951 const handleOpenSubmenu = ( ) => {
5052 setOpenSubMenu ( ! openSubMenu ) ;
5153 } ;
5254
55+ const handleReportsMenu = ( ) => {
56+ setOpenReports ( ! openReports ) ;
57+ } ;
58+
5359 const handleChange = ( ) => {
5460 dispatch ( changeDrawer ( ! open ) ) ;
5561 } ;
@@ -127,9 +133,56 @@ const Appbar = () => {
127133 </ ListItem >
128134 ) ) }
129135
136+ < ListItem
137+ button
138+ onClick = { handleReportsMenu }
139+ className = {
140+ location . pathname === '/reports'
141+ ? 'menu__item menu__item_selected'
142+ : 'menu__item'
143+ }
144+ >
145+ < ListItemIcon >
146+ < AssessmentIcon />
147+ </ ListItemIcon >
148+ < ListItemText primary = "Отчеты" />
149+ { openReports ? < ExpandLess /> : < ExpandMore /> }
150+ </ ListItem >
151+
152+ < Collapse in = { openReports } unmountOnExit >
153+ < List component = "div" disablePadding className = "menu__nested" >
154+ { reportsRoutes . map ( ( route , index ) => (
155+ < ListItem
156+ key = { index }
157+ button
158+ onClick = { ( ) => navigateTo ( route . path ) }
159+ selected = { location . pathname === route . path }
160+ className = {
161+ location . pathname === route . path
162+ ? 'menu__item menu__item_selected'
163+ : 'menu__item'
164+ }
165+ >
166+ < ListItemIcon >
167+ { route . code === 'requestsReport' && < WorkIcon /> }
168+ </ ListItemIcon >
169+ < ListItemText primary = { route . name } />
170+ </ ListItem >
171+ ) ) }
172+ </ List >
173+ </ Collapse >
174+
130175 { ( userRoleCode === 'ADMIN' || userRoleCode === 'SUPER_ADMIN' ) && (
131176 < >
132- < ListItem button onClick = { handleOpenSubmenu } >
177+ < ListItem
178+ button
179+ onClick = { handleOpenSubmenu }
180+ className = {
181+ location . pathname === '/administration'
182+ ? 'menu__item menu__item_selected'
183+ : 'menu__item'
184+ }
185+ >
133186 < ListItemIcon >
134187 < SettingsIcon />
135188 </ ListItemIcon >
0 commit comments