4.0.0-rc.0 (2021-02-09)
Bug Fixes
- add isGliding back + interpolate scrollYCurrent only in iOS (80a5690)
- add null check (fb3b1b2)
- attempt at fixing lazy sometimes opening with 0 opacity (264cf00)
- bug when removing dynamic tab (d9c27a5)
- cancel snapping animations on drag (63fa2dc)
- contentHeight should've been a map (321fa34)
- diffclamp snap threshold (356cdbf)
- don't bounce pager on ios (fb49a97)
- ensure callers can't override onScroll (8421c65)
- handle ios overscroll (72b4e54)
- infinite loop (f6a2f69)
- initial lazy position on ios (56789c1)
- ios refresh control (c09a3e8)
- lazy (b383af9)
- memoize tabbar in example so it doesn't flicker (eeb94cc)
- minor tabbar tweaks (b0cdcff)
- navigation bar zindex on ios (9fa6958)
- opacity stuck as 0 on lazy tab (sometimes) (8cfc596)
- prevent scrolling to top (1db8e4e)
- rework refs to fix scroll sync (ec513cd)
- sticky header edge case on android (7569a52)
- stop animated scroll on snap (72e87ac)
- sync scroll position on dynamic tabs (4c9cfce)
- usederivedvalue for tabnames value (92f22de)
Features
- add sanity check (duplicate tabs not allowed) (5e18678)
- allow callers to still hook into certain events we're also handling (6f32f1c)
- dynamic tabbar (f4ebdfe)
- dynamic tabs (2884bba)
- forward flatlist and scrollview refs (749cfbe)
- rename onIndexChange to onTabChange and add onIndexChange(number) (c02c88a)
BREAKING CHANGES
- createCollapsibleTabs() no longer exists. Instead the library exports different components (Container, Tab, ScrollView, ListView) which can be nested like normal react components.
- refMap no longer exists, and creating refs is no longer necessary (it's all handled internally)
- ScrollView/FlatList now forward their refs, so the caller can just tap into their ref prop
- the existing onIndexChange was renamed to onTabChange, and a separate onIndexChange was implemented that just returns the new index (as a number)
- diffClampEnabled was changed to revealHeaderOnScroll
- redundant prop snapEnabled was removed, instead snapThreshold is number | null | undefined. If not a number, then snap is not enabled. Setting it to 0.5 will result in snapping in the middle, like in the previous version.
Fixes: #88, #94, #98, #100