2021-02-02 22:15:13 -05:00
|
|
|
import React, { useCallback } from 'react'
|
|
|
|
|
import { useDispatch, useSelector } from 'react-redux'
|
|
|
|
|
import { Layout, toggleSidebar } from 'react-admin'
|
2020-03-31 14:52:54 -04:00
|
|
|
import { makeStyles } from '@material-ui/core/styles'
|
2021-02-02 22:15:13 -05:00
|
|
|
import { HotKeys } from 'react-hotkeys'
|
2020-01-22 12:46:09 -05:00
|
|
|
import Menu from './Menu'
|
2020-02-05 23:08:04 -05:00
|
|
|
import AppBar from './AppBar'
|
2020-11-04 19:29:55 -05:00
|
|
|
import Notification from './Notification'
|
2021-03-21 22:49:43 +05:30
|
|
|
import useCurrentTheme from '../themes/useCurrentTheme'
|
2020-01-22 12:46:09 -05:00
|
|
|
|
2020-03-31 14:52:54 -04:00
|
|
|
const useStyles = makeStyles({
|
2020-04-02 18:09:02 -04:00
|
|
|
root: { paddingBottom: (props) => (props.addPadding ? '80px' : 0) },
|
2020-03-31 14:52:54 -04:00
|
|
|
})
|
|
|
|
|
|
2020-03-31 09:35:44 -04:00
|
|
|
export default (props) => {
|
2021-03-21 22:49:43 +05:30
|
|
|
const theme = useCurrentTheme()
|
2020-04-02 18:09:02 -04:00
|
|
|
const queue = useSelector((state) => state.queue)
|
|
|
|
|
const classes = useStyles({ addPadding: queue.queue.length > 0 })
|
2021-02-02 22:15:13 -05:00
|
|
|
const dispatch = useDispatch()
|
|
|
|
|
|
|
|
|
|
const keyHandlers = {
|
|
|
|
|
TOGGLE_MENU: useCallback(() => dispatch(toggleSidebar()), [dispatch]),
|
|
|
|
|
}
|
2020-03-31 09:35:44 -04:00
|
|
|
|
2020-03-31 14:52:54 -04:00
|
|
|
return (
|
2021-02-03 18:29:33 -05:00
|
|
|
<HotKeys handlers={keyHandlers}>
|
2021-02-02 22:15:13 -05:00
|
|
|
<Layout
|
|
|
|
|
{...props}
|
|
|
|
|
className={classes.root}
|
|
|
|
|
menu={Menu}
|
|
|
|
|
appBar={AppBar}
|
|
|
|
|
theme={theme}
|
|
|
|
|
notification={Notification}
|
|
|
|
|
/>
|
|
|
|
|
</HotKeys>
|
2020-03-31 14:52:54 -04:00
|
|
|
)
|
2020-03-31 09:35:44 -04:00
|
|
|
}
|