- ✨ Added UMD (dev and prod) build - (emmanueltouzery - #281)
- 🐛 Fixed size list and grid components now accurately report
visibleStopIndex
inonItemsRendered
. (Previously this value was incorrectly reported as one index higher.) - (justingrant - #274) - 🐛 Fixed size list and grid components
scrollToItem
"center" mode when the item being scrolled to is near the viewport edge. - (justingrant - #274)
- 🐛 Edge case bug-fix for
scrollToItem
when scrollbars are present (MarkFalconbridge - #267) - 🐛 Fixed RTL scroll offsets for non-Chromium Edge (MarkFalconbridge - #268)
- 🐛 Flow types improved (TrySound - #260)
- ✨ Deprecated grid props
overscanColumnsCount
andoverscanRowsCount
props in favor of more consistently namedoverscanColumnCount
andoverscanRowCount
. (nihgwu - #229) - 🐛 Fixed shaky elastic scroll problems present in iOS Safari. #244
- 🐛 Fixed RTL edge case bugs and broken scroll-to-item behavior. #159
- 🐛 Fixed broken synchronized scrolling for RTL lists/grids. #198
- 🐛 Replaced an incorrect empty-string value for
pointer-events
withundefined
(oliviertassinari - #210)
- 🐛 Add guards to avoid invalid scroll offsets when
scrollTo()
is called with a negative offset or whenscrollToItem
is called with invalid indices (negative or too large).
- 🎉 Grid
scrollToItem
supports optionalrowIndex
andcolumnIndex
params (jgoz - #174) - DEV mode checks for
WeakSet
support before using it to avoid requiring a polyfill for IE11 - (jgoz - #167)
- 🐛 Bugfix for RTL when scrolling back towards the beginning (right) of the list.
- 🐛 Bugfix to account for differences between Chrome and non-Chrome browsers with regard to RTL and "scroll" events.
- 🎉 RTL support added for lists and grids. Special thanks to davidgarsan for his support. - #156
- 🐛 Grid
scrollToItem
methods take scrollbar size into account when aligning items - #153
- 🐛 Edge case bug fix for
VariableSizeList
andVariableSizeGrid
when the number of items decreases while a scroll is in progress. - (iamsolankiamit - #138)
- 🐛 Updated
getDerivedState
Flow annotations to address a warning in a newer version of Flow.
- 🎉 Added advanced memoization helpers methods
areEqual
andshouldComponentUpdate
for item renderers. - #114
- 🎉 List and Grid components now "overscan" (pre-render) in both directions when scrolling is not active. When scrolling is in progress, cells are only pre-rendered in the direction being scrolled. This change has been made in an effort to reduce visible flicker when scrolling starts without adding additional overhead during scroll (which is the most performance sensitive time).
- 🎉 Grid components now support separate
overscanColumnsCount
andoverscanRowsCount
props. LegacyoverscanCount
prop will continue to work, but with a deprecation warning in DEV mode. - 🐛 Replaced
setTimeout
withrequestAnimationFrame
based timer, to avoid starvation issue forisScrolling
reset. - #106 - 🎉 Renamed List and Grid
innerTagName
andouterTagName
props toinnerElementType
andouterElementType
to formalize support for attaching arbitrary props (e.g. test ids) to List and Grid inner and outer DOM elements. LegacyinnerTagName
andouterTagName
props will continue to work, but with a deprecation warning in DEV mode. - 🐛 List re-renders items if
direction
prop changes. - #104
- 🎉 Pass
itemData
value to customitemKey
callbacks when present - #90)
- (Skipped)
- 🐛 Added Flow annotations to memoized methods to avoid a Flow warning for newer versions of Flow
- 🐛 Relaxed
children
validation checks. They were too strict and didn't support new React APIs likememo
.
- 🐛 Improved Flow types for class component item renderers - (nicholas-l - #77)
- 🎉 Improved Flow types to include optional
itemData
parameter. (TrySound - #66) - 🐛
VariableSizeList
andVariableSizeGrid
no longer call size getter functions with invalid index when item count is zero.
- 🎉 Flow types added to NPM package. (TrySound - #40)
- 🎉 Relaxed grid
scrollTo
method to makescrollLeft
andscrollTop
params optional (so you can only update one axis if desired). - #63) - 🐛 Fixed invalid
this
pointer inVariableSizeGrid
that broke theresetAfter*
methods - #58) - Upgraded to babel 7 and used shared runtime helpers to reduce package size slightly. (TrySound - #48)
- Remove
overflow:hidden
from inner container (souporserious - #56)
- 🐛 Fixed edge case
scrollToItem
bug that caused lists/grids with very few items to have negative scroll offsets.
- 🐛
FixedSizeGrid
andFixedSizeList
automatically clear style cache when item size props change.
- 🎉 Use explicit
constructor
andsuper
to generate cleaner component code. (Andarist - #26) - 🎉 Add optional
shouldForceUpdate
param reset-index methods to specifyforceUpdate
behavior. (nihgwu - #32)
- 🐛 Avoid unnecessary scrollbars for lists (e.g. no horizontal scrollbar for a vertical list) unless content requires them.
- 🎉 Enable Babel
annotate-pure-calls
option so that classes compiled by "transform-es2015-classes" are annotated with#__PURE__
. This enables UglifyJS to remove them if they are not referenced, improving dead code elimination in application code. (Andarist - #20) - 🎉 Update "rollup-plugin-peer-deps-external" and use new
includeDependencies
flag so that the "memoize-one" dependency does not get inlined into the Rollup bundle. (Andarist - #19) - 🎉 Enable Babel "loose" mode to reduce package size (-8%). (Andarist - #18)
Updated README.md
file to remove @alpha
tag from NPM installation instructions.
Initial release of library. Includes the following components:
FixedSizeGrid
FixedSizeList
VariableSizeGrid
VariableSizeList