@@ -71,17 +71,17 @@ export const VirtualList = forwardRef(function <ITEM>(
71
71
props : VirtualListProps < ITEM > ,
72
72
ref : React . ForwardedRef < VirtualListHandle >
73
73
) {
74
- const [ itemSize , setitemSize ] = useState ( props . itemSize || 100 ) ;
74
+ const [ itemSize , setItemSize ] = useState ( props . itemSize || 100 ) ;
75
75
const buffer = useMemo ( ( ) => props . buffer || Math . max ( itemSize * 5 , 100 ) , [ props . buffer , itemSize ] ) ;
76
76
const count = props . items . length
77
77
const list = useRef < HTMLDivElement > ( null ) ;
78
78
const listInner = useRef < HTMLDivElement > ( null ) ;
79
79
const prevScrollTop = useRef ( 0 ) ;
80
80
const scrollToIndexRef = useRef < { index : number , block : string } > ( ) ;
81
- const [ shouldScrollToIndex , setshouldScrollToIndex ] = useState ( [ ] ) ;
82
- const [ scrollTop , setscrollTop ] = useState ( 0 ) ;
83
- const [ listSize , setlistSize ] = useState ( props . listSize ! ) ;
84
- const [ forceRerender , setforceRerender ] = useState ( [ ] ) ; // change value to force rerender
81
+ const [ shouldScrollToIndex , setShouldScrollToIndex ] = useState ( [ ] ) ;
82
+ const [ scrollTop , setScrollTop ] = useState ( 0 ) ;
83
+ const [ listSize , setListSize ] = useState ( props . listSize ! ) ;
84
+ const [ forceRerender , setForceRerender ] = useState ( [ ] ) ; // change value to force rerender
85
85
const ignoreUpdateScrollTopOnce = useRef ( false ) ;
86
86
//
87
87
const mainCache = useMemo ( ( ) => {
@@ -127,7 +127,7 @@ export const VirtualList = forwardRef(function <ITEM>(
127
127
}
128
128
129
129
useLayoutEffect ( ( ) => {
130
- setlistSize ( list . current ! . clientHeight )
130
+ setListSize ( list . current ! . clientHeight )
131
131
// get avg item size
132
132
if ( props . itemSize == null ) {
133
133
let count = 0
@@ -143,7 +143,7 @@ export const VirtualList = forwardRef(function <ITEM>(
143
143
totalHeight += ( el as HTMLElement ) . offsetHeight + parseFloat ( style . marginTop ) + parseFloat ( style . marginBottom )
144
144
count ++
145
145
}
146
- setitemSize ( totalHeight / count )
146
+ setItemSize ( totalHeight / count )
147
147
}
148
148
} , [ props . itemSize , props . items , forceRerender ] ) ;
149
149
//
@@ -156,14 +156,14 @@ export const VirtualList = forwardRef(function <ITEM>(
156
156
return
157
157
}
158
158
159
- setlistSize ( list . current ! . clientHeight )
159
+ setListSize ( list . current ! . clientHeight )
160
160
161
161
if ( ignoreUpdateScrollTopOnce . current ) {
162
162
ignoreUpdateScrollTopOnce . current = false
163
163
} else {
164
164
const scrollTop = list . current ! . scrollTop ;
165
165
if ( Math . abs ( prevScrollTop . current - scrollTop ) > ( props . triggerDistance ?? itemSize ) ) {
166
- setscrollTop ( scrollTop )
166
+ setScrollTop ( scrollTop )
167
167
prevScrollTop . current = scrollTop
168
168
}
169
169
}
@@ -179,12 +179,12 @@ export const VirtualList = forwardRef(function <ITEM>(
179
179
}
180
180
const scrollTop = index * itemSize // estimated value
181
181
list . current ! . scrollTop = scrollTop
182
- setscrollTop ( scrollTop )
182
+ setScrollTop ( scrollTop )
183
183
prevScrollTop . current = scrollTop
184
- setshouldScrollToIndex ( [ ] ) // ensure re-render but exclude itemSize. setforceRerender will re calculate avg itemSize, so don't use it here.
184
+ setShouldScrollToIndex ( [ ] ) // ensure re-render but exclude itemSize. setForceRerender will re calculate avg itemSize, so don't use it here.
185
185
} ,
186
186
forceUpdate ( ) {
187
- setforceRerender ( [ ] )
187
+ setForceRerender ( [ ] )
188
188
} ,
189
189
getRootElement ( ) {
190
190
return list . current !
0 commit comments