diff --git a/ui/src/layout/AppBar.js b/ui/src/layout/AppBar.js
index 2e01a53e7..f7ac7ebdb 100644
--- a/ui/src/layout/AppBar.js
+++ b/ui/src/layout/AppBar.js
@@ -1,8 +1,17 @@
-import React, { forwardRef } from 'react'
-import { AppBar as RAAppBar, UserMenu, useTranslate } from 'react-admin'
+import React, { createElement, forwardRef } from 'react'
+import {
+ AppBar as RAAppBar,
+ UserMenu,
+ MenuItemLink,
+ useTranslate,
+ getResources,
+} from 'react-admin'
+import { useSelector } from 'react-redux'
import { makeStyles, MenuItem, ListItemIcon } from '@material-ui/core'
+import ViewListIcon from '@material-ui/icons/ViewList'
import InfoIcon from '@material-ui/icons/Info'
import AboutDialog from './AboutDialog'
+import PersonalMenu from './PersonalMenu'
const useStyles = makeStyles((theme) => ({
root: {
@@ -45,11 +54,46 @@ const AboutMenuItem = forwardRef(({ onClick, ...rest }, ref) => {
)
})
-const CustomUserMenu = (props) => (
-
-
-
-)
+const settingsResources = (resource) =>
+ resource.hasList &&
+ resource.options &&
+ resource.options.subMenu === 'settings'
+
+const CustomUserMenu = ({ onClick, ...rest }) => {
+ const translate = useTranslate()
+ const resources = useSelector(getResources)
+ const classes = useStyles(rest)
+
+ const renderSettingsMenuItemLink = (resource) => {
+ const label = translate(`resources.${resource.name}.name`, {
+ smart_count: 2,
+ })
+ return (
+
+ }
+ onClick={onClick}
+ sidebarIsOpen={true}
+ />
+ )
+ }
+
+ return (
+
+
+
+ {resources.filter(settingsResources).map(renderSettingsMenuItemLink)}
+
+
+
+ )
+}
const AppBar = (props) => } />
diff --git a/ui/src/layout/Menu.js b/ui/src/layout/Menu.js
index deff95bfd..2ef57cff8 100644
--- a/ui/src/layout/Menu.js
+++ b/ui/src/layout/Menu.js
@@ -4,12 +4,10 @@ import { useMediaQuery } from '@material-ui/core'
import { useTranslate, MenuItemLink, getResources } from 'react-admin'
import { withRouter } from 'react-router-dom'
import LibraryMusicIcon from '@material-ui/icons/LibraryMusic'
-import SettingsIcon from '@material-ui/icons/Settings'
import ViewListIcon from '@material-ui/icons/ViewList'
import AlbumIcon from '@material-ui/icons/Album'
import SubMenu from './SubMenu'
import inflection from 'inflection'
-import PersonalMenu from './PersonalMenu'
import albumLists from '../album/albumLists'
const translatedResourceName = (resource, translate) =>
@@ -108,21 +106,6 @@ const Menu = ({ onMenuClick, dense, logout }) => {
>
{resources.filter(subItems('library')).map(renderResourceMenuItemLink)}
- handleToggle('menuSettings')}
- isOpen={state.menuSettings}
- sidebarIsOpen={open}
- name="menu.settings"
- icon={}
- dense={dense}
- >
- {resources.filter(subItems('settings')).map(renderResourceMenuItemLink)}
-
-
{resources.filter(subItems(undefined)).map(renderResourceMenuItemLink)}
{isXsmall && logout}