@@ -617,76 +617,6 @@ const Autocomplete = React.forwardRef(function Autocomplete(inProps, ref) {
617
617
const popperSlotProps = slotProps . popper ?? componentsProps . popper ;
618
618
const popupIndicatorSlotProps = slotProps . popupIndicator ?? componentsProps . popupIndicator ;
619
619
620
- const renderAutocompletePopperChildren = ( children ) => (
621
- < AutocompletePopper
622
- as = { PopperComponent }
623
- disablePortal = { disablePortal }
624
- style = { { width : anchorEl ? anchorEl . clientWidth : null } }
625
- ownerState = { ownerState }
626
- role = "presentation"
627
- anchorEl = { anchorEl }
628
- open = { popupOpen }
629
- { ...popperSlotProps }
630
- className = { clsx ( classes . popper , popperSlotProps ?. className ) }
631
- >
632
- < AutocompletePaper
633
- ownerState = { ownerState }
634
- as = { PaperComponent }
635
- { ...paperSlotProps }
636
- className = { clsx ( classes . paper , paperSlotProps ?. className ) }
637
- >
638
- { children }
639
- </ AutocompletePaper >
640
- </ AutocompletePopper >
641
- ) ;
642
-
643
- let autocompletePopper = null ;
644
- if ( groupedOptions . length > 0 ) {
645
- autocompletePopper = renderAutocompletePopperChildren (
646
- < AutocompleteListbox
647
- as = { ListboxComponent }
648
- className = { classes . listbox }
649
- ownerState = { ownerState }
650
- { ...otherListboxProps }
651
- { ...ListboxProps }
652
- ref = { combinedListboxRef }
653
- >
654
- { groupedOptions . map ( ( option , index ) => {
655
- if ( groupBy ) {
656
- return renderGroup ( {
657
- key : option . key ,
658
- group : option . group ,
659
- children : option . options . map ( ( option2 , index2 ) =>
660
- renderListOption ( option2 , option . index + index2 ) ,
661
- ) ,
662
- } ) ;
663
- }
664
- return renderListOption ( option , index ) ;
665
- } ) }
666
- </ AutocompleteListbox > ,
667
- ) ;
668
- } else if ( loading && groupedOptions . length === 0 ) {
669
- autocompletePopper = renderAutocompletePopperChildren (
670
- < AutocompleteLoading className = { classes . loading } ownerState = { ownerState } >
671
- { loadingText }
672
- </ AutocompleteLoading > ,
673
- ) ;
674
- } else if ( groupedOptions . length === 0 && ! freeSolo && ! loading ) {
675
- autocompletePopper = renderAutocompletePopperChildren (
676
- < AutocompleteNoOptions
677
- className = { classes . noOptions }
678
- ownerState = { ownerState }
679
- role = "presentation"
680
- onMouseDown = { ( event ) => {
681
- // Prevent input blur when interacting with the "no options" content
682
- event . preventDefault ( ) ;
683
- } }
684
- >
685
- { noOptionsText }
686
- </ AutocompleteNoOptions > ,
687
- ) ;
688
- }
689
-
690
620
return (
691
621
< React . Fragment >
692
622
< AutocompleteRoot
@@ -751,7 +681,70 @@ const Autocomplete = React.forwardRef(function Autocomplete(inProps, ref) {
751
681
} ,
752
682
} ) }
753
683
</ AutocompleteRoot >
754
- { anchorEl ? autocompletePopper : null }
684
+ { anchorEl ? (
685
+ < AutocompletePopper
686
+ as = { PopperComponent }
687
+ disablePortal = { disablePortal }
688
+ style = { {
689
+ width : anchorEl ? anchorEl . clientWidth : null ,
690
+ } }
691
+ ownerState = { ownerState }
692
+ role = "presentation"
693
+ anchorEl = { anchorEl }
694
+ open = { popupOpen }
695
+ { ...popperSlotProps }
696
+ className = { clsx ( classes . popper , popperSlotProps ?. className ) }
697
+ >
698
+ < AutocompletePaper
699
+ ownerState = { ownerState }
700
+ as = { PaperComponent }
701
+ { ...paperSlotProps }
702
+ className = { clsx ( classes . paper , paperSlotProps ?. className ) }
703
+ >
704
+ { loading && groupedOptions . length === 0 ? (
705
+ < AutocompleteLoading className = { classes . loading } ownerState = { ownerState } >
706
+ { loadingText }
707
+ </ AutocompleteLoading >
708
+ ) : null }
709
+ { groupedOptions . length === 0 && ! freeSolo && ! loading ? (
710
+ < AutocompleteNoOptions
711
+ className = { classes . noOptions }
712
+ ownerState = { ownerState }
713
+ role = "presentation"
714
+ onMouseDown = { ( event ) => {
715
+ // Prevent input blur when interacting with the "no options" content
716
+ event . preventDefault ( ) ;
717
+ } }
718
+ >
719
+ { noOptionsText }
720
+ </ AutocompleteNoOptions >
721
+ ) : null }
722
+ { groupedOptions . length > 0 ? (
723
+ < AutocompleteListbox
724
+ as = { ListboxComponent }
725
+ className = { classes . listbox }
726
+ ownerState = { ownerState }
727
+ { ...otherListboxProps }
728
+ { ...ListboxProps }
729
+ ref = { combinedListboxRef }
730
+ >
731
+ { groupedOptions . map ( ( option , index ) => {
732
+ if ( groupBy ) {
733
+ return renderGroup ( {
734
+ key : option . key ,
735
+ group : option . group ,
736
+ children : option . options . map ( ( option2 , index2 ) =>
737
+ renderListOption ( option2 , option . index + index2 ) ,
738
+ ) ,
739
+ } ) ;
740
+ }
741
+ return renderListOption ( option , index ) ;
742
+ } ) }
743
+ </ AutocompleteListbox >
744
+ ) : null }
745
+ </ AutocompletePaper >
746
+ </ AutocompletePopper >
747
+ ) : null }
755
748
</ React . Fragment >
756
749
) ;
757
750
} ) ;
0 commit comments