diff --git a/packages/mui-material/src/Autocomplete/Autocomplete.js b/packages/mui-material/src/Autocomplete/Autocomplete.js index f249219d26da5e..085b5b6e4f2bf7 100644 --- a/packages/mui-material/src/Autocomplete/Autocomplete.js +++ b/packages/mui-material/src/Autocomplete/Autocomplete.js @@ -718,6 +718,14 @@ const Autocomplete = React.forwardRef(function Autocomplete(inProps, ref) { {noOptionsText} , ); + } else if (externalForwardedProps.slots.popper || externalForwardedProps.slots.paper) { + autocompletePopper = ( + + {externalForwardedProps.slots.paper ? ( + + ) : null} + + ); } return ( diff --git a/packages/mui-material/src/Autocomplete/Autocomplete.test.js b/packages/mui-material/src/Autocomplete/Autocomplete.test.js index 97099aa953faee..d59b356f4eb5b5 100644 --- a/packages/mui-material/src/Autocomplete/Autocomplete.test.js +++ b/packages/mui-material/src/Autocomplete/Autocomplete.test.js @@ -2455,6 +2455,27 @@ describe('', () => { const popper = screen.queryByTestId('popperRoot'); expect(popper).to.equal(null); }); + + // Test for https://github.com/mui/material-ui/issues/44048 + it('should render popper if custom paper is passed through slots even when there are no options', () => { + render( + } + slots={{ + paper: (props) =>
, + }} + slotProps={{ + paper: { 'data-testid': 'paperRoot' }, + }} + />, + ); + + const paper = screen.queryByTestId('paperRoot'); + expect(paper).not.to.equal(null); + }); }); describe('prop: onChange', () => {