@@ -398,6 +398,59 @@ export const DrawerMenu: React.FC<{
398398 ) ;
399399} ;
400400
401+ const RenderMenuItem : React . FC < {
402+ menuItem : MenuItemProps ;
403+ styles : MenuStyles ;
404+ selectedItem : string | undefined ;
405+ setSelectedItem : ( s : string ) => void ;
406+ itemIndex : number ;
407+ icon : ReactNode ;
408+ label : ReactNode ;
409+ } > = ( {
410+ menuItem,
411+ styles,
412+ selectedItem,
413+ setSelectedItem,
414+ itemIndex,
415+ icon,
416+ label,
417+ } ) => {
418+ return (
419+ < AntMenu . Item
420+ data-testid = { menuItem . id ?? menuItem . testId }
421+ icon = { icon }
422+ key = { menuItem . page || menuItem . url || `customItem${ itemIndex } ` }
423+ onClick = { ( ) : void => {
424+ if ( ! menuItem . openNewTab && menuItem . page ) {
425+ setSelectedItem ( menuItem . page ) ;
426+ }
427+ } }
428+ style = { {
429+ color :
430+ selectedItem === menuItem . page
431+ ? ( styles . selectedColor as string ) ?? "white"
432+ : ( styles . labelColor as string ) ?? "grey" ,
433+ display : menuItem . visible === false ? "none" : "flex" ,
434+ justifyContent : "center" ,
435+ borderRadius : 0 ,
436+ alignItems : "center" ,
437+ fontSize :
438+ selectedItem === menuItem . page
439+ ? `${
440+ parseInt (
441+ `${ styles . labelFontSize ? styles . labelFontSize : 1 } ` || "1" ,
442+ ) + 0.2
443+ } rem`
444+ : `${ styles . labelFontSize ? styles . labelFontSize : 1 } rem` ,
445+ height : "auto" ,
446+ ...( selectedItem === menuItem . page ? styles . onSelectStyles ?? { } : { } ) ,
447+ } }
448+ >
449+ < CustomLink item = { menuItem } > { label } </ CustomLink >
450+ </ AntMenu . Item >
451+ ) ;
452+ } ;
453+
401454const MenuItems : React . FC < {
402455 items : MenuItemProps [ ] ;
403456 styles : MenuStyles ;
@@ -468,6 +521,14 @@ const MenuItems: React.FC<{
468521 .ant-menu-submenu-title{
469522 color: inherit !important
470523 }
524+
525+ .ant-menu-item {
526+ padding-left: 24px !important;
527+ }
528+
529+ .ant-menu-sub {
530+ padding-left: 24px !important;
531+ }
471532 ` }
472533 </ style >
473534
@@ -499,85 +560,31 @@ const MenuItems: React.FC<{
499560 title = { getLabel ( item ) }
500561 >
501562 { item . children . map ( ( childItem , childIndex ) => (
502- < AntMenu . Item
503- data-testid = { childItem . id ?? childItem . testId }
563+ < RenderMenuItem
504564 icon = { getIcon ( childItem ) }
565+ itemIndex = { childIndex }
505566 key = {
506- childItem . page ||
507- childItem . url ||
508- `childItem-${ itemIndex } -${ childIndex } `
567+ childItem . page || childItem . url || `customItem${ childIndex } `
509568 }
510- onClick = { ( ) : void => {
511- if ( ! childItem . openNewTab && childItem . page ) {
512- setSelectedItem ( childItem . page ) ;
513- }
514- } }
515- style = { {
516- color :
517- selectedItem === childItem . page
518- ? ( styles . selectedColor as string ) ?? "white"
519- : ( styles . labelColor as string ) ?? "grey" ,
520- display : childItem . visible === false ? "none" : "flex" ,
521- justifyContent : "center" ,
522- borderRadius : 0 ,
523- alignItems : "center" ,
524- fontSize :
525- selectedItem === childItem . page
526- ? `${
527- parseInt (
528- `${ styles . labelFontSize ? styles . labelFontSize : 1 } ` ||
529- "1" ,
530- ) + 0.2
531- } rem`
532- : `${ styles . labelFontSize ? styles . labelFontSize : 1 } rem` ,
533- height : "auto" ,
534- ...( selectedItem === childItem . page
535- ? styles . onSelectStyles ?? { }
536- : { } ) ,
537- } }
538- >
539- < CustomLink item = { childItem } >
540- { getLabel ( childItem ) }
541- </ CustomLink >
542- </ AntMenu . Item >
569+ label = { getLabel ( childItem ) }
570+ menuItem = { childItem }
571+ selectedItem = { selectedItem }
572+ setSelectedItem = { setSelectedItem }
573+ styles = { styles }
574+ />
543575 ) ) }
544576 </ AntMenu . SubMenu >
545577 ) : (
546- < AntMenu . Item
547- data-testid = { item . id ?? item . testId }
578+ < RenderMenuItem
548579 icon = { getIcon ( item ) }
580+ itemIndex = { itemIndex }
549581 key = { item . page || item . url || `customItem${ itemIndex } ` }
550- onClick = { ( ) : void => {
551- if ( ! item . openNewTab && item . page ) {
552- setSelectedItem ( item . page ) ;
553- }
554- } }
555- style = { {
556- color :
557- selectedItem === item . page
558- ? ( styles . selectedColor as string ) ?? "white"
559- : ( styles . labelColor as string ) ?? "grey" ,
560- display : item . visible === false ? "none" : "flex" ,
561- justifyContent : "center" ,
562- borderRadius : 0 ,
563- alignItems : "center" ,
564- fontSize :
565- selectedItem === item . page
566- ? `${
567- parseInt (
568- `${ styles . labelFontSize ? styles . labelFontSize : 1 } ` ||
569- "1" ,
570- ) + 0.2
571- } rem`
572- : `${ styles . labelFontSize ? styles . labelFontSize : 1 } rem` ,
573- height : "auto" ,
574- ...( selectedItem === item . page
575- ? styles . onSelectStyles ?? { }
576- : { } ) ,
577- } }
578- >
579- < CustomLink item = { item } > { getLabel ( item ) } </ CustomLink >
580- </ AntMenu . Item >
582+ label = { getLabel ( item ) }
583+ menuItem = { item }
584+ selectedItem = { selectedItem }
585+ setSelectedItem = { setSelectedItem }
586+ styles = { styles }
587+ />
581588 ) ,
582589 ) }
583590 </ AntMenu >
0 commit comments