🔖 Version 3.0
🚚 Switch to Rollup bundler, remove polyfills and deprecations.
🚀 The major feature of this release is size reduction. Gzip size of the module has gone from over 6kb to 4905 bytes (4.79kb). Woohoo!
🗄 The major factor in this reduction was moving from Webpack to Rollup. We were also able to kill some deprecations, which lightened the bundle.
💥 Breaking changes
- Switch from polyfills to helper functions
Before, we were polyfilling certain array methods:
isArray. This wasn't ideal, since it meant we could be patching the host application's array methods.
💻 We still include helper methods to perform these operations, so browser support has not changed. But, if your host application (the code you write) uses the aforementioned array methods, they may suddenly not work in legacy browsers like Internet Explorer, since our polyfills have been removed.
🚚 1. Removed typo animation presets
If you ask me, "accordion" should really be spelled "accordian". That's how you pronounce it!
👍 That said, the correct spelling is "accordion". For the presets
accordionVertical, we were supporting both variants, but now only the correct spelling will be accepted.
🚚 1. Removed deprecated prop "disableAnimations"
We renamed the prop
disableAllAnimations. The former will no longer work.
➕ Add warning when children are disabled
🚚 In Internet Explorer 11 (and below), the transitonend event will not (consistently) fire for elements that have the disabled attribute. This means the callback for node removal is never fired and the supposedly removed nodes stay in the html.
🏁 Also includes some cleanup, and a move to use
cross-envfor Windows support.
🚀 Thanks a ton to @tobilen for contributing this release!!
📚 Performance Improvements, typescript type fixes, documentation update
🚀 The largest change in this release is an optimization to batch calls that cause layout recalculation. For large lists, this can improve the performance of the calculations required to begin the animation by a tremendous amount (4x in one recorded instance!).
📚 This release also features some fixes to the Typescript types, as well as a tweak to the documentation to make it more accurate.
🚀 Huge thanks to @egorshulga, who contributed all of the aforementioned work in this release!
🚚 Prior to React 16, a React component had to return a single top-level element. This meant that React Flip Move had to wrap its children in a
<div>or other HTML node; it couldn't just return the array of children provided to it.
🚚 Happily, React's new reconciliation engine in v16 changes this, and React Flip Move can now be run in "wrapperless" mode, which means that it won't create an additional node.
To use this new mode, simply set
🚚 There may be some quirks. For example, React Flip Move still needs to position its children to handle leave animations, and so if
<FlipMove>'s parent container is set to
position: static(the default), you may notice some quirky behaviour. To fix this, just set
position: relative(or absolute/fixed) on the parent.
➕ Adds support for React 16, and brings the Flip Move dev environment into 2017 🎉 🎉 🎉
⚡️ While this sounds like a small change, it's a complete overhaul of the dev dependencies. Our tests and stories have been updated.
🛠 Fix bugs with IE 10 and node type check
🛠 This release includes two bugfixes:
- 👍 Allow FlipMove to work within iFrames (via React 16 portals) - #193
- 🛠 Fix issue with IE10 not able to access
🛠 Fix zombie nodes (#120) and increase test stability
🚀 This release fixes the often-reported issue with zombie nodes staying after fast toggling. Huge thanks to @tobilen for tackling this problem!!
🚀 This release also includes some improvements to our tests, by polyfilling
requestAnimationFrame. Huge thanks to @Hypnosphi for their work on this, and for everything they've done and continue to do for this project :D