@@ -12,6 +12,8 @@ const Container = styled(Flex)`
1212 list-style-type: none;
1313`
1414
15+ const defaultEstimateSize = ( ) => 28
16+
1517const Dropdown = ( {
1618 hideShadow,
1719 itemProps,
@@ -22,6 +24,8 @@ const Dropdown = ({
2224 hasSearch,
2325 searchMargin = [ 4 ] ,
2426 gap = 0 ,
27+ width = "300px" ,
28+ estimateSize = defaultEstimateSize ,
2529 close,
2630 ...rest
2731} ) => {
@@ -52,7 +56,7 @@ const Dropdown = ({
5256 scrollOffsetFn : event => ( event ? event . target . scrollTop - ref . current . offsetTop : 0 ) ,
5357 overscan : 3 ,
5458 enableSmoothScroll : false ,
55- estimateSize : ( ) => 30 ,
59+ estimateSize,
5660 } )
5761
5862 return (
@@ -81,10 +85,9 @@ const Dropdown = ({
8185 < div
8286 ref = { ref }
8387 style = { {
84- minHeight : "100%" ,
85- width : "100%" ,
88+ height : "100%" ,
8689 overflow : "auto" ,
87- minWidth : "300px" ,
90+ width ,
8891 } }
8992 >
9093 < div
@@ -94,32 +97,31 @@ const Dropdown = ({
9497 position : "relative" ,
9598 } }
9699 >
97- { ref . current ?. isConnected &&
98- rowVirtualizer . getVirtualItems ( ) . map ( virtualRow => (
99- < div
100- key = { virtualRow . key }
101- style = { {
102- position : "absolute" ,
103- top : 0 ,
104- left : 0 ,
105- width : "100%" ,
106- transform : `translateY(${ virtualRow . start } px)` ,
107- padding : gap * 2 ,
108- overflow : "hidden" ,
109- } }
110- data-index = { virtualRow . index }
111- ref = { rowVirtualizer . measureElement }
112- >
113- < Item
114- item = { filteredItems [ virtualRow . index ] }
115- index = { virtualRow . index }
116- itemProps = { itemProps }
117- value = { value }
118- onItemClick = { onItemClick }
119- close = { close }
120- />
121- </ div >
122- ) ) }
100+ { rowVirtualizer . getVirtualItems ( ) . map ( virtualRow => (
101+ < div
102+ key = { virtualRow . key }
103+ style = { {
104+ position : "absolute" ,
105+ top : 0 ,
106+ left : 0 ,
107+ width : "100%" ,
108+ transform : `translateY(${ virtualRow . start } px)` ,
109+ padding : gap * 2 ,
110+ overflow : "hidden" ,
111+ } }
112+ data-index = { virtualRow . index }
113+ ref = { rowVirtualizer . measureElement }
114+ >
115+ < Item
116+ item = { filteredItems [ virtualRow . index ] }
117+ index = { virtualRow . index }
118+ itemProps = { itemProps }
119+ value = { value }
120+ onItemClick = { onItemClick }
121+ close = { close }
122+ />
123+ </ div >
124+ ) ) }
123125 </ div >
124126 </ div >
125127 </ Container >
0 commit comments