@@ -139,9 +139,21 @@ function AppBarActionsMenu({
139139 appBarActions . map ( action => {
140140 const Action = has ( action , 'action' ) ? action . action : action ;
141141 if ( React . isValidElement ( Action ) ) {
142+ const label = ( action as AppBarAction ) ?. label ;
142143 return (
143144 < ErrorBoundary >
144- < MenuItem > { Action } </ MenuItem >
145+ < MenuItem
146+ onClick = { ( action as AppBarAction ) ?. onClick || undefined }
147+ sx = { {
148+ justifyContent : 'center' ,
149+ gap : '12px' ,
150+ } }
151+ >
152+ < ListItemIcon sx = { { minWidth : '40px' , justifyContent : 'center' } } >
153+ { Action }
154+ </ ListItemIcon >
155+ { label && < ListItemText primary = { label } /> }
156+ </ MenuItem >
145157 </ ErrorBoundary >
146158 ) ;
147159 } else if ( Action === null ) {
@@ -150,7 +162,10 @@ function AppBarActionsMenu({
150162 const ActionComponent = Action as React . FC ;
151163 return (
152164 < ErrorBoundary >
153- < MenuItem >
165+ < MenuItem
166+ onClick = { ( action as AppBarAction ) ?. onClick || undefined }
167+ sx = { { justifyContent : 'center' } }
168+ >
154169 < ActionComponent />
155170 </ MenuItem >
156171 </ ErrorBoundary >
@@ -308,33 +323,41 @@ export function PureTopBar({
308323 id : DefaultAppBarAction . NOTIFICATION ,
309324 action : null ,
310325 } ,
311- {
312- id : DefaultAppBarAction . SETTINGS ,
313- action : (
314- < MenuItem >
315- < SettingsButton onClickExtra = { handleMenuClose } />
316- </ MenuItem >
317- ) ,
318- } ,
326+ ...( isClusterContext
327+ ? [
328+ {
329+ id : DefaultAppBarAction . SETTINGS ,
330+ action : < SettingsButton onClickExtra = { handleMenuClose } /> ,
331+ label : t ( 'translation|Settings' ) ,
332+ onClick : ( ) => {
333+ handleMenuClose ( ) ;
334+ history . push ( createRouteURL ( 'settingsCluster' , { cluster } ) ) ;
335+ } ,
336+ } ,
337+ ]
338+ : [ ] ) ,
319339 {
320340 id : DefaultAppBarAction . USER ,
321341 action : ! ! isClusterContext && (
322- < MenuItem >
323- < IconButton
324- aria-label = { t ( 'Account of current user' ) }
325- aria-controls = { userMenuId }
326- aria-haspopup = "true"
327- color = "inherit"
328- onClick = { event => {
329- handleMenuClose ( ) ;
330- handleProfileMenuOpen ( event ) ;
331- } }
332- size = "medium"
333- >
334- < Icon icon = "mdi:account" />
335- </ IconButton >
336- </ MenuItem >
342+ < IconButton
343+ aria-label = { t ( 'Account of current user' ) }
344+ aria-controls = { userMenuId }
345+ aria-haspopup = "true"
346+ color = "inherit"
347+ onClick = { event => {
348+ handleMenuClose ( ) ;
349+ handleProfileMenuOpen ( event ) ;
350+ } }
351+ size = "medium"
352+ >
353+ < Icon icon = "mdi:account" />
354+ </ IconButton >
337355 ) ,
356+ label : t ( 'translation|Account' ) ,
357+ onClick : ( event : React . MouseEvent < HTMLElement > ) => {
358+ handleMenuClose ( ) ;
359+ handleProfileMenuOpen ( event ) ;
360+ } ,
338361 } ,
339362 ] ;
340363 const renderMobileMenu = (
@@ -395,6 +418,12 @@ export function PureTopBar({
395418 ) ,
396419 } ,
397420 ] ;
421+
422+ const visibleMobileActions = processAppBarActions (
423+ allAppBarActionsMobile ,
424+ appBarActionsProcessors
425+ ) . filter ( action => React . isValidElement ( action . action ) || typeof action === 'function' ) ;
426+
398427 return (
399428 < >
400429 < AppBar
@@ -425,16 +454,18 @@ export function PureTopBar({
425454 < HeadlampButton open = { openSideBar } onToggleOpen = { onToggleOpen } />
426455 < Box sx = { { flexGrow : 1 } } />
427456 < GlobalSearch isIconButton />
428- < IconButton
429- aria-label = { t ( 'show more' ) }
430- aria-controls = { mobileMenuId }
431- aria-haspopup = "true"
432- onClick = { handleMobileMenuOpen }
433- color = "inherit"
434- size = "medium"
435- >
436- < Icon icon = "mdi:more-vert" />
437- </ IconButton >
457+ { visibleMobileActions . length > 0 && (
458+ < IconButton
459+ aria-label = { t ( 'show more' ) }
460+ aria-controls = { mobileMenuId }
461+ aria-haspopup = "true"
462+ onClick = { handleMobileMenuOpen }
463+ color = "inherit"
464+ size = "medium"
465+ >
466+ < Icon icon = "mdi:more-vert" />
467+ </ IconButton >
468+ ) }
438469 </ >
439470 ) : (
440471 < >
0 commit comments