@@ -6,15 +6,12 @@ import {
66 FloatingFocusManager ,
77 FloatingOverlay ,
88 FloatingPortal ,
9- inner ,
109 offset ,
1110 shift ,
12- SideObject ,
1311 size ,
1412 useClick ,
1513 useDismiss ,
1614 useFloating ,
17- useInnerOffset ,
1815 useInteractions ,
1916 useListNavigation ,
2017 useRole ,
@@ -117,16 +114,13 @@ export const Select = React.forwardRef(
117114
118115 const listRef = useRef < Array < HTMLElement | null > > ( [ ] )
119116 const listContentRef = useRef < Array < string | null > > ( [ ] )
120- const overflowRef = useRef < null | SideObject > ( null )
121117 const allowSelectRef = useRef ( false )
122118 const allowMouseUpRef = useRef ( true )
123119 const selectTimeoutRef = useRef < any > ( )
124120
125121 const [ open , setOpen ] = useState ( false )
126122 const [ selectedIndex , setSelectedIndex ] = useState ( 0 )
127123 const [ activeIndex , setActiveIndex ] = useState < number | null > ( null )
128- const [ fallback , setFallback ] = useState ( false )
129- const [ innerOffset , setInnerOffset ] = useState ( 0 )
130124 const [ controlledScrolling , setControlledScrolling ] = useState ( false )
131125 const [ touch , setTouch ] = useState ( false )
132126
@@ -151,38 +145,22 @@ export const Select = React.forwardRef(
151145 autoUpdate ( reference , floating , update , {
152146 animationFrame : true ,
153147 } ) ,
154- middleware : fallback
155- ? [
156- offset ( 8 ) ,
157- ...[
158- touch
159- ? shift ( { crossAxis : true , padding : 8 } )
160- : flip ( { padding : 8 } ) ,
161- ] ,
162- size ( {
163- apply ( { elements, availableHeight, availableWidth, rects } ) {
164- Object . assign ( elements . floating . style , {
165- maxHeight : `${ availableHeight } px` ,
166- minWidth : `${ rects . reference . width } px` ,
167- maxWidth : `${ availableWidth } px` ,
168- } )
169- } ,
170- padding : 8 ,
171- } ) ,
172- ]
173- : [
174- inner ( {
175- listRef,
176- overflowRef,
177- index : selectedIndex ,
178- offset : innerOffset ,
179- onFallbackChange : setFallback ,
180- padding : 8 ,
181- minItemsVisible : touch ? 10 : 4 ,
182- referenceOverflowThreshold : 20 ,
183- } ) ,
184- offset ( { crossAxis : - 4 } ) ,
185- ] ,
148+ middleware : [
149+ offset ( 8 ) ,
150+ ...[
151+ touch ? shift ( { crossAxis : true , padding : 8 } ) : flip ( { padding : 8 } ) ,
152+ ] ,
153+ size ( {
154+ apply ( { elements, availableHeight, availableWidth, rects } ) {
155+ Object . assign ( elements . floating . style , {
156+ maxHeight : `${ availableHeight } px` ,
157+ minWidth : `${ rects . reference . width } px` ,
158+ maxWidth : `${ availableWidth } px` ,
159+ } )
160+ } ,
161+ padding : 8 ,
162+ } ) ,
163+ ] ,
186164 } )
187165
188166 useImperativeHandle ( ref , ( ) => reference )
@@ -192,11 +170,6 @@ export const Select = React.forwardRef(
192170 useClick ( context ) ,
193171 useDismiss ( context ) ,
194172 useRole ( context , { role : 'listbox' } ) ,
195- useInnerOffset ( context , {
196- enabled : ! fallback ,
197- onChange : setInnerOffset ,
198- overflowRef,
199- } ) ,
200173 useListNavigation ( context , {
201174 listRef,
202175 activeIndex,
@@ -222,8 +195,6 @@ export const Select = React.forwardRef(
222195 }
223196 allowSelectRef . current = false
224197 allowMouseUpRef . current = true
225- setInnerOffset ( 0 )
226- setFallback ( false )
227198 return undefined
228199 } , [ open ] )
229200
@@ -255,20 +226,20 @@ export const Select = React.forwardRef(
255226 } , [ open , refs , controlledScrolling , activeIndex ] )
256227
257228 useLayoutEffect ( ( ) => {
258- if ( open && fallback ) {
229+ if ( open ) {
259230 requestAnimationFrame ( ( ) => {
260231 if ( selectedIndex != null ) {
261232 listRef . current [ selectedIndex ] ?. scrollIntoView ( { block : 'nearest' } )
262233 }
263234 } )
264235 }
265- } , [ open , fallback , selectedIndex ] )
236+ } , [ open , selectedIndex ] )
266237
267238 useLayoutEffect ( ( ) => {
268- if ( refs . floating . current && fallback ) {
239+ if ( refs . floating . current ) {
269240 refs . floating . current . style . maxHeight = ''
270241 }
271- } , [ refs , fallback ] )
242+ } , [ refs ] )
272243
273244 const selected = selectedIndex < items . length ? items [ selectedIndex ] : null
274245
0 commit comments