diff --git a/ui/src/audioplayer/Player.js b/ui/src/audioplayer/Player.js index 71967f63f..ca5b784a9 100644 --- a/ui/src/audioplayer/Player.js +++ b/ui/src/audioplayer/Player.js @@ -89,6 +89,14 @@ const Player = () => { [queue] ) + useHotkeys('=', () => { + audioInstance.volume = Math.min(1, audioInstance.volume + 0.1) + }) + + useHotkeys('-', () => { + audioInstance.volume = Math.max(0, audioInstance.volume - 0.1) + }) + useHotkeys( 'right', (e) => { diff --git a/ui/src/layout/Menu.js b/ui/src/layout/Menu.js index 2ef57cff8..9b7738f76 100644 --- a/ui/src/layout/Menu.js +++ b/ui/src/layout/Menu.js @@ -1,7 +1,12 @@ import React, { useState, createElement } from 'react' -import { useSelector } from 'react-redux' +import { useSelector, useDispatch } from 'react-redux' import { useMediaQuery } from '@material-ui/core' -import { useTranslate, MenuItemLink, getResources } from 'react-admin' +import { + useTranslate, + MenuItemLink, + getResources, + toggleSidebar, +} from 'react-admin' import { withRouter } from 'react-router-dom' import LibraryMusicIcon from '@material-ui/icons/LibraryMusic' import ViewListIcon from '@material-ui/icons/ViewList' @@ -9,6 +14,7 @@ import AlbumIcon from '@material-ui/icons/Album' import SubMenu from './SubMenu' import inflection from 'inflection' import albumLists from '../album/albumLists' +import { useHotkeys } from 'react-hotkeys-hook' const translatedResourceName = (resource, translate) => translate(`resources.${resource.name}.name`, { @@ -27,6 +33,11 @@ const Menu = ({ onMenuClick, dense, logout }) => { const open = useSelector((state) => state.admin.ui.sidebarOpen) const translate = useTranslate() const resources = useSelector(getResources) + const dispatch = useDispatch() + + useHotkeys('m', () => { + dispatch(toggleSidebar()) + }) // TODO State is not persisted in mobile when you close the sidebar menu. Move to redux? const [state, setState] = useState({