@@ -111,11 +111,12 @@ function SingleSelect({
111111 if ( option . disabled ) return
112112
113113 const originalOption = optionsList . find ( ( opt ) => opt . value === option . value )
114+ const selectedOpt = originalOption || option
114115
115- setSelectedOption ( originalOption || option )
116+ setSelectedOption ( selectedOpt )
116117 setIsOpen ( false )
117118
118- onChangeSelect ?.( originalOption || option )
119+ onChangeSelect ?.( selectedOpt )
119120 }
120121
121122 const optionsWithSelected = optionsList . map ( ( opt ) => ( {
@@ -124,15 +125,12 @@ function SingleSelect({
124125 } ) )
125126
126127 const getInputLabel = ( ) => {
127- let inputLabel = label
128128 if ( ! isFilter && ! selectedOption ) return ''
129- if ( ! selectedOption ) return inputLabel
129+ if ( ! selectedOption ) return label || ''
130130
131- return selectedOption . value === ''
132- ? inputLabel
133- : ( inputLabel =
134- optionsList . find ( ( opt ) => opt . value === selectedOption . value )
135- ?. label || label )
131+ if ( selectedOption . value === '' ) return label || ''
132+
133+ return selectedOption . label || selectedOption . value . toString ( )
136134 }
137135
138136 useEffect ( ( ) => {
@@ -149,8 +147,12 @@ function SingleSelect({
149147 } , [ ] )
150148
151149 useEffect ( ( ) => {
152- const found = optionsList . find ( ( opt ) => opt . value === value )
153- setSelectedOption ( found || null )
150+ if ( value !== undefined && value !== null ) {
151+ const found = optionsList . find ( ( opt ) => opt . value === value )
152+ setSelectedOption ( found || null )
153+ } else {
154+ setSelectedOption ( null )
155+ }
154156 } , [ value , optionsList ] )
155157
156158 return (
0 commit comments