@@ -398,6 +398,59 @@ export const DrawerMenu: React.FC<{
398
398
) ;
399
399
} ;
400
400
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
+
401
454
const MenuItems : React . FC < {
402
455
items : MenuItemProps [ ] ;
403
456
styles : MenuStyles ;
@@ -468,6 +521,14 @@ const MenuItems: React.FC<{
468
521
.ant-menu-submenu-title{
469
522
color: inherit !important
470
523
}
524
+
525
+ .ant-menu-item {
526
+ padding-left: 24px !important;
527
+ }
528
+
529
+ .ant-menu-sub {
530
+ padding-left: 24px !important;
531
+ }
471
532
` }
472
533
</ style >
473
534
@@ -499,85 +560,31 @@ const MenuItems: React.FC<{
499
560
title = { getLabel ( item ) }
500
561
>
501
562
{ item . children . map ( ( childItem , childIndex ) => (
502
- < AntMenu . Item
503
- data-testid = { childItem . id ?? childItem . testId }
563
+ < RenderMenuItem
504
564
icon = { getIcon ( childItem ) }
565
+ itemIndex = { childIndex }
505
566
key = {
506
- childItem . page ||
507
- childItem . url ||
508
- `childItem-${ itemIndex } -${ childIndex } `
567
+ childItem . page || childItem . url || `customItem${ childIndex } `
509
568
}
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
+ />
543
575
) ) }
544
576
</ AntMenu . SubMenu >
545
577
) : (
546
- < AntMenu . Item
547
- data-testid = { item . id ?? item . testId }
578
+ < RenderMenuItem
548
579
icon = { getIcon ( item ) }
580
+ itemIndex = { itemIndex }
549
581
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
+ />
581
588
) ,
582
589
) }
583
590
</ AntMenu >
0 commit comments