diff --git a/packages/ra-ui-materialui/src/input/AutocompleteInput.spec.tsx b/packages/ra-ui-materialui/src/input/AutocompleteInput.spec.tsx index 3ef07805b94..4c17a482c7d 100644 --- a/packages/ra-ui-materialui/src/input/AutocompleteInput.spec.tsx +++ b/packages/ra-ui-materialui/src/input/AutocompleteInput.spec.tsx @@ -1592,9 +1592,11 @@ describe('', () => { describe('InputProps', () => { it('should pass InputProps to the input', async () => { render(); - await screen.findByRole('textbox'); + const input = await screen.findByRole('textbox'); screen.getByTestId('AttributionIcon'); screen.getByTestId('ExpandCircleDownIcon'); + fireEvent.click(input); + screen.getByText('Victor Hugo'); }); }); }); diff --git a/packages/ra-ui-materialui/src/input/AutocompleteInput.stories.tsx b/packages/ra-ui-materialui/src/input/AutocompleteInput.stories.tsx index ae73804d2c1..327289d3a2c 100644 --- a/packages/ra-ui-materialui/src/input/AutocompleteInput.stories.tsx +++ b/packages/ra-ui-materialui/src/input/AutocompleteInput.stories.tsx @@ -1221,12 +1221,25 @@ export const WithInputProps = () => { TextFieldProps={{ InputProps: { startAdornment: ( - + ), endAdornment: ( - + ), diff --git a/packages/ra-ui-materialui/src/input/AutocompleteInput.tsx b/packages/ra-ui-materialui/src/input/AutocompleteInput.tsx index 85ffdb7da3d..b7a21952148 100644 --- a/packages/ra-ui-materialui/src/input/AutocompleteInput.tsx +++ b/packages/ra-ui-materialui/src/input/AutocompleteInput.tsx @@ -560,42 +560,51 @@ If you provided a React element for the optionText prop, you must also provide t id={id} isOptionEqualToValue={isOptionEqualToValue} filterSelectedOptions - renderInput={params => ( - - } - error={ - !!fetchError || - ((isTouched || isSubmitted) && invalid) - } - helperText={ - renderHelperText ? ( - { + const mergedTextFieldProps = { + ...params.InputProps, + ...TextFieldProps?.InputProps, + }; + return ( + - ) : null - } - margin={margin} - variant={variant} - className={AutocompleteInputClasses.textField} - {...params} - {...TextFieldProps} - size={size} - /> - )} + } + error={ + !!fetchError || + ((isTouched || isSubmitted) && invalid) + } + helperText={ + renderHelperText ? ( + + ) : null + } + margin={margin} + variant={variant} + className={AutocompleteInputClasses.textField} + {...params} + InputProps={mergedTextFieldProps} + size={size} + /> + ); + }} multiple={multiple} renderTags={(value, getTagProps) => value.map((option, index) => (