diff --git a/docs/data/material/components/autocomplete/GitHubLabel.tsx b/docs/data/material/components/autocomplete/GitHubLabel.tsx index 09e83bdecfba54..d5591cb3b21df9 100644 --- a/docs/data/material/components/autocomplete/GitHubLabel.tsx +++ b/docs/data/material/components/autocomplete/GitHubLabel.tsx @@ -132,8 +132,11 @@ const Button = styled(ButtonBase)(({ theme }) => ({ export default function GitHubLabel() { const [anchorEl, setAnchorEl] = React.useState(null); - const [value, setValue] = React.useState([labels[1], labels[11]]); - const [pendingValue, setPendingValue] = React.useState([]); + const [value, setValue] = React.useState([ + labels[1], + labels[11], + ]); + const [pendingValue, setPendingValue] = React.useState([]); const theme = useTheme(); const handleClick = (event: React.MouseEvent) => { diff --git a/packages/mui-material/src/Autocomplete/Autocomplete.d.ts b/packages/mui-material/src/Autocomplete/Autocomplete.d.ts index cf58f50550c5e3..ff46558cf86eed 100644 --- a/packages/mui-material/src/Autocomplete/Autocomplete.d.ts +++ b/packages/mui-material/src/Autocomplete/Autocomplete.d.ts @@ -80,7 +80,7 @@ export type AutocompleteRenderValueGetItemProps = Multiple extends true - ? Array> + ? ReadonlyArray> : NonNullable>; export interface AutocompleteRenderOptionState { diff --git a/packages/mui-material/src/Autocomplete/Autocomplete.spec.tsx b/packages/mui-material/src/Autocomplete/Autocomplete.spec.tsx index cf9baa121a2e52..fc368c6c41544d 100644 --- a/packages/mui-material/src/Autocomplete/Autocomplete.spec.tsx +++ b/packages/mui-material/src/Autocomplete/Autocomplete.spec.tsx @@ -46,7 +46,7 @@ function MyAutocomplete< { - expectType(value); + expectType(value); }} renderInput={() => null} multiple diff --git a/packages/mui-material/src/useAutocomplete/useAutocomplete.d.ts b/packages/mui-material/src/useAutocomplete/useAutocomplete.d.ts index 31020a545e6b5f..69633a116cb454 100644 --- a/packages/mui-material/src/useAutocomplete/useAutocomplete.d.ts +++ b/packages/mui-material/src/useAutocomplete/useAutocomplete.d.ts @@ -33,7 +33,7 @@ export type AutocompleteValueOrFreeSoloValueMapping = FreeSolo : Value; export type AutocompleteValue = Multiple extends true - ? Array> + ? ReadonlyArray> : DisableClearable extends true ? NonNullable> : Value | null | AutocompleteFreeSoloValueMapping; diff --git a/packages/mui-material/src/useAutocomplete/useAutocomplete.spec.ts b/packages/mui-material/src/useAutocomplete/useAutocomplete.spec.ts index 096fd4328bcabc..c32fd505ed6b03 100644 --- a/packages/mui-material/src/useAutocomplete/useAutocomplete.spec.ts +++ b/packages/mui-material/src/useAutocomplete/useAutocomplete.spec.ts @@ -77,7 +77,7 @@ function Component() { options: ['1', '2', '3'], multiple: true, onChange(event, value) { - expectType(value); + expectType(value); value; }, }); @@ -87,7 +87,7 @@ function Component() { options: ['1', '2', '3', 4, true], multiple: true, onChange(event, value) { - expectType, typeof value>(value); + expectType, typeof value>(value); }, }); @@ -96,7 +96,7 @@ function Component() { options: persons, multiple: true, onChange(event, value) { - expectType(value); + expectType(value); value; }, }); @@ -105,7 +105,7 @@ function Component() { useAutocomplete({ options: persons, multiple: true, - onChange(event, value: Person[]) {}, + onChange(event, value: readonly Person[]) {}, }); // options accepts const and value has correct type @@ -163,7 +163,7 @@ function Component() { options: persons, multiple: true, onChange(event, value) { - expectType, typeof value>(value); + expectType, typeof value>(value); }, freeSolo: true, }); diff --git a/packages/mui-material/test/typescript/moduleAugmentation/autocompleteCustomSlotProps.spec.tsx b/packages/mui-material/test/typescript/moduleAugmentation/autocompleteCustomSlotProps.spec.tsx index 60f35df2c18866..e803cdcc31babc 100644 --- a/packages/mui-material/test/typescript/moduleAugmentation/autocompleteCustomSlotProps.spec.tsx +++ b/packages/mui-material/test/typescript/moduleAugmentation/autocompleteCustomSlotProps.spec.tsx @@ -7,14 +7,18 @@ import TextField from '@mui/material/TextField'; declare module '@mui/material/Autocomplete' { interface AutocompletePaperSlotPropsOverrides { - value: Option[]; + value: readonly Option[]; } interface AutocompletePopperSlotPropsOverrides { - value: Option[]; + value: readonly Option[]; } } -function CustomPaper({ children, value, ...paperProps }: PaperProps & { value: Option[] }) { +function CustomPaper({ + children, + value, + ...paperProps +}: PaperProps & { value: readonly Option[] }) { return ( event.preventDefault()}> {children} @@ -23,7 +27,11 @@ function CustomPaper({ children, value, ...paperProps }: PaperProps & { value: O ); } -function CustomPopper({ children, value, ...popperProps }: PopperProps & { value: Option[] }) { +function CustomPopper({ + children, + value, + ...popperProps +}: PopperProps & { value: readonly Option[] }) { return ( {children as React.ReactNode} @@ -38,7 +46,7 @@ interface Option { } function App() { - const [value, setValue] = React.useState([]); + const [value, setValue] = React.useState([]); return (