@@ -20,6 +20,7 @@ interface HeaderProps {
2020 isHiddenMainMenu ?: boolean ,
2121 isLibrary ?: boolean ,
2222 containerProps ?: ContainerPropsType ,
23+ readOnly ?: boolean ,
2324}
2425
2526const Header = ( {
@@ -30,6 +31,7 @@ const Header = ({
3031 isHiddenMainMenu = false ,
3132 isLibrary = false ,
3233 containerProps = { } ,
34+ readOnly = false ,
3335} : HeaderProps ) => {
3436 const intl = useIntl ( ) ;
3537 const waffleFlags = useWaffleFlags ( ) ;
@@ -43,8 +45,8 @@ const Header = ({
4345 const settingMenuItems = useSettingMenuItems ( contextId ) ;
4446 const toolsMenuItems = useToolsMenuItems ( contextId ) ;
4547 const libraryToolsMenuItems = useLibraryToolsMenuItems ( contextId ) ;
46- const libraryToolsSettingsItems = useLibrarySettingsMenuItems ( ) ;
47- const mainMenuDropdowns = ! isLibrary ? [
48+ const libraryToolsSettingsItems = useLibrarySettingsMenuItems ( contextId , readOnly ) ;
49+ let mainMenuDropdowns = ! isLibrary ? [
4850 {
4951 id : `${ intl . formatMessage ( messages [ 'header.links.content' ] ) } -dropdown-menu` ,
5052 buttonTitle : intl . formatMessage ( messages [ 'header.links.content' ] ) ,
@@ -61,18 +63,25 @@ const Header = ({
6163 items : toolsMenuItems ,
6264 } ,
6365 ] : [
64- {
65- id : `${ intl . formatMessage ( messages [ 'header.links.settings' ] ) } -dropdown-menu` ,
66- buttonTitle : intl . formatMessage ( messages [ 'header.links.settings' ] ) ,
67- items : libraryToolsSettingsItems ,
68- } ,
6966 {
7067 id : `${ intl . formatMessage ( messages [ 'header.links.tools' ] ) } -dropdown-menu` ,
7168 buttonTitle : intl . formatMessage ( messages [ 'header.links.tools' ] ) ,
7269 items : libraryToolsMenuItems ,
7370 } ,
7471 ] ;
7572
73+ // Include settings menu only if user is allowed to see them.
74+ if ( isLibrary && libraryToolsSettingsItems . length > 0 ) {
75+ mainMenuDropdowns = [
76+ {
77+ id : `${ intl . formatMessage ( messages [ 'header.links.settings' ] ) } -dropdown-menu` ,
78+ buttonTitle : intl . formatMessage ( messages [ 'header.links.settings' ] ) ,
79+ items : libraryToolsSettingsItems ,
80+ } ,
81+ ...mainMenuDropdowns ,
82+ ] ;
83+ }
84+
7685 const getOutlineLink = ( ) => {
7786 if ( isLibrary ) {
7887 return `/library/${ contextId } ` ;
0 commit comments