mirror of
https://github.com/navidrome/navidrome.git
synced 2025-08-10 00:52:20 +00:00
* Auto theme preference added * Fix lint * Add and use AUTO from consts * Add shared custom hook to get current theme * Moved up 'Auto' choice * AUTO -> AUTO_THEME_ID & extract useCurrentTheme to file * Liberalise theme setting * Add tests
38 lines
1.0 KiB
JavaScript
38 lines
1.0 KiB
JavaScript
import React, { useCallback } from 'react'
|
|
import { useDispatch, useSelector } from 'react-redux'
|
|
import { Layout, toggleSidebar } from 'react-admin'
|
|
import { makeStyles } from '@material-ui/core/styles'
|
|
import { HotKeys } from 'react-hotkeys'
|
|
import Menu from './Menu'
|
|
import AppBar from './AppBar'
|
|
import Notification from './Notification'
|
|
import useCurrentTheme from '../themes/useCurrentTheme'
|
|
|
|
const useStyles = makeStyles({
|
|
root: { paddingBottom: (props) => (props.addPadding ? '80px' : 0) },
|
|
})
|
|
|
|
export default (props) => {
|
|
const theme = useCurrentTheme()
|
|
const queue = useSelector((state) => state.queue)
|
|
const classes = useStyles({ addPadding: queue.queue.length > 0 })
|
|
const dispatch = useDispatch()
|
|
|
|
const keyHandlers = {
|
|
TOGGLE_MENU: useCallback(() => dispatch(toggleSidebar()), [dispatch]),
|
|
}
|
|
|
|
return (
|
|
<HotKeys handlers={keyHandlers}>
|
|
<Layout
|
|
{...props}
|
|
className={classes.root}
|
|
menu={Menu}
|
|
appBar={AppBar}
|
|
theme={theme}
|
|
notification={Notification}
|
|
/>
|
|
</HotKeys>
|
|
)
|
|
}
|