@@ -6,13 +6,7 @@ import Card from "@mui/material/Card";
6
6
import CardContent from "@mui/material/CardContent" ;
7
7
import TextField from "@mui/material/TextField" ;
8
8
import ClickAwayListener from "@mui/material/ClickAwayListener" ;
9
- import React , {
10
- ForwardedRef ,
11
- forwardRef ,
12
- useState ,
13
- useRef ,
14
- useEffect ,
15
- } from "react" ;
9
+ import React , { Ref , useState , useRef , useEffect } from "react" ;
16
10
import {
17
11
Controller ,
18
12
ControllerProps ,
@@ -47,20 +41,21 @@ type MultipleSelectExtendedInputProps<T extends object> = {
47
41
) ;
48
42
49
43
const MUIComponents = {
50
- List : forwardRef < HTMLDivElement , ListProps > ( function MuiList (
51
- { style, children } ,
52
- listRef
53
- ) {
44
+ List : function MuiList ( {
45
+ style,
46
+ children,
47
+ ref,
48
+ } : ListProps & { ref ?: Ref < HTMLDivElement > } ) {
54
49
return (
55
50
< List
56
51
style = { { padding : 0 , ...style , margin : 0 } }
57
52
component = "div"
58
- ref = { listRef }
53
+ ref = { ref }
59
54
>
60
55
{ children }
61
56
</ List >
62
57
) ;
63
- } ) ,
58
+ } ,
64
59
65
60
Item : ( { children, ...props } : ItemProps < unknown > ) => {
66
61
return (
@@ -71,14 +66,14 @@ const MUIComponents = {
71
66
} ,
72
67
} ;
73
68
74
- function MultipleSelectExtendedInputRaw < T extends object > (
69
+ function MultipleSelectExtendedInput < T extends object > (
75
70
props : MultipleSelectExtendedInputProps < T > & {
76
71
name : string ;
77
72
value : T [ ] | null ;
78
73
onChange : ( value : T [ ] ) => void ;
79
74
onBlur : ( ) => void ;
80
- } ,
81
- ref ?: ForwardedRef < HTMLDivElement | null >
75
+ ref ?: Ref < HTMLDivElement | null > ;
76
+ }
82
77
) {
83
78
const [ isOpen , setIsOpen ] = useState ( false ) ;
84
79
const boxRef = useRef < HTMLInputElement | null > ( null ) ;
@@ -96,7 +91,7 @@ function MultipleSelectExtendedInputRaw<T extends object>(
96
91
< div >
97
92
< Box mb = { 0.5 } ref = { boxRef } >
98
93
< TextField
99
- ref = { ref }
94
+ ref = { props . ref }
100
95
name = { props . name }
101
96
value = { props . value ? props . renderSelected ( props . value ) : "" }
102
97
onBlur = { props . onBlur }
@@ -188,17 +183,6 @@ function MultipleSelectExtendedInputRaw<T extends object>(
188
183
) ;
189
184
}
190
185
191
- const MultipleSelectExtendedInput = forwardRef (
192
- MultipleSelectExtendedInputRaw
193
- ) as never as < T extends object > (
194
- props : MultipleSelectExtendedInputProps < T > & {
195
- name : string ;
196
- value : T [ ] | null ;
197
- onChange : ( value : T [ ] ) => void ;
198
- onBlur : ( ) => void ;
199
- } & { ref ?: ForwardedRef < HTMLDivElement | null > }
200
- ) => ReturnType < typeof MultipleSelectExtendedInputRaw > ;
201
-
202
186
function FormMultipleSelectExtendedInput <
203
187
TFieldValues extends FieldValues = FieldValues ,
204
188
T extends object = object ,
0 commit comments