Releases: software-mansion/react-native-reanimated
Releases Β· software-mansion/react-native-reanimated
4.1.0
What's Changed
- chore: bump default Reanimated in docs by @tjzel in #7873
- chore: bump default Reanimated in docs v2 by @tjzel in #7876
- feat: add pull request label formatter by @skusnierz in #7875
- chore: bump default Reanimated in docs v3 by @tjzel in #7878
- Fix typo in migration guide from 3.x to 4.x by @tomekzaw in #7877
- fix: format PR description and label CI by @skusnierz in #7884
- Update getting-started.mdx with the right installation command for reanimated 4 by @sleez007 in #7885
- docs: Fix issue causing code blocks to appear on a single line by @soaple in #7882
- feat: Support for separate CSS interpolators for different components by @MatiPl01 in #7736
- feat: Custom CSS properties preprocessors for different component types by @MatiPl01 in #7741
- chore: amend monorepo build script by @tjzel in #7869
- chore: Add cpp formatting to the pre-commit hook by @MatiPl01 in #7888
- refactor(Worklets): Rename
Shareable
toSerializable
- part 1 by @skusnierz in #7845 - feat(Worklets): update
Shareable
implementation to usenativeState
instead ofHostObject
by @skusnierz in #7843 - chore: cleanup
docs-reanimated
by @skusnierz in #7780 - chore: bump Reanimated and Worklets in docs by @tjzel in #7868
- Remove native view export by @piaskowyk in #7893
- chore(deps): bump form-data from 3.0.1 to 3.0.4 by @dependabot[bot] in #7838
- feat(Worklets): make AsyncQueue virtual and public by @tjzel in #7886
- feat: Add support for multiple animated props objects by @MatiPl01 in #7890
- Update migration guide steps related to react-native-bottom-sheet by @tomekzaw in #7895
- Update bug report issue template by @tomekzaw in #7899
- feat(Worklets): Update interface of the
createWorkletRuntime
function by @skusnierz in #7894 - Add missing quotes in bug report issue template by @tomekzaw in #7901
- Remove Native View by @piaskowyk in #7898
- fix(Worklets): _$$_IMPORT_ALL identifier clash in some web setups by @tjzel in #7900
- chore: refactor version checking for reanimated and worklets by @skusnierz in #7862
- Swap acknowledgements dropdown options in bug report issue template by @tomekzaw in #7903
- chore(Reanimated): bump version in monorepo by @tjzel in #7907
- chore: Remove deprecated types from library and examples by @MatiPl01 in #7910
- Fix linking error after Gradle clean project on Android by @tomekzaw in #7866
- docs: Add 4.0.0 to compatibility table by @tomekzaw in #7916
- chore: Hide the unfinished CSS SVG support behind the feature flag by @MatiPl01 in #7909
- docs: Update compatibility table by @tomekzaw in #7918
- fix: Invalid workflow name by @MatiPl01 in #7923
- Bump minimal React Native version in assertions by @tomekzaw in #7930
- Update compatibility table for 3.19.0 by @tomekzaw in #7931
- fix: CSS animations not being removed from the stylesheet on web by @MatiPl01 in #7932
- [Web LA] Adjust animation cleanup to slower devices by @m-bert in #7933
- refactor(Worklets): extract RuntimeData file by @tjzel in #7905
- docs: Add missing 4.0.1 to compat table by @MatiPl01 in #7934
- refactor(Worklets): remove supportsLocking parameter from Worklet Runtimes by @tjzel in #7904
- feat: docs for new spring by @tjzel in #7826
- feat: Accept multiple values and CSS props in
animatedProps
by @MatiPl01 in #7749 - chore(Worklets): update compat table post 0.4.1 release by @tjzel in #7937
- chore: bump nightly compat check CI by @tjzel in #7938
- feat(Worklets): allow passing user-implemented AsyncQueue to createWorkletRuntime by @tjzel in #7851
- feat(Worklets): runAsyncGuardedOnUI by @tjzel in #7906
- feat: Add CSS app examples search bar by @MatiPl01 in #7758
- [Web LA] fix: Call callback in scheduleAnimationCleanup if not called already by @mhawryluk in #7940
- feat(Worklets): obtain WorkletRuntime from runtime address by @tjzel in #7911
- feat: Support for SVG circle base props by @MatiPl01 in #7750
- fix: Make sure that tagToJSPropNamesMapping is initialized before being used by @MatiPl01 in #7941
- Replace with ContextContainer::Shared with std::shared_ptr<const Cont⦠by @christophpurrer in #7926
- chore: Relocate SVG specific files in the CPP implementation by @MatiPl01 in #7943
- Remove ifdefs for pre-0.78 by @tomekzaw in #7945
- feat: Static props support in SVG CSS animations by @MatiPl01 in #7783
- chore: Rename CSSDimension to CSSLength by @MatiPl01 in #7944
- Fix Gradle Configuration Cache by @tomekzaw in #7955
- chore: SVG color and fill CSS animation examples by @MatiPl01 in #7784
- Update release instructions after v4 release by @tomekzaw in #7956
- fix: LA Manager initialized too late on the UI runtime by @MatiPl01 in #7954
- fix(Reanimated): withSpring overshoot clamping coordinates by @tjzel in #7959
- fix: iOS crash caused by the
IOSUIScheduler
by @zhouzh1 in #7953 - Remove unnecessary
makeShareable
call for color names and properties by @tomekzaw in #7957 - Add support for remaining synchronous props on Android by @tomekzaw in #7962
- fix: Small CSS issues introduced in recent PRs by @MatiPl01 in #7972
- Add filter example by @tomekzaw in #7973
- feat: Support for SVG Rect in CSS animations by @MatiPl01 in #7968
- feat: Support for SVG Ellipse in CSS animations by @MatiPl01 in #7961
- Add synchronous props example by @tomekzaw in #7975
- feat: Some SVG stroke properties support by @MatiPl01 in https://github.com/software-mansion/react-n...
Worklets - 0.5.0
Key changes
- Added an option to pass custom AsyncQueue to a WorkletRuntime
- Introduced getRuntimeKind to replace deprecated _WORKLET API
- Introduced scheduleOnRN to replace deprecated runOnJS
- feat:
scheduleOnRN
by @skusnierz in #8050 - feat:
scheduleOnRN
docs by @skusnierz in #8058
- feat:
- Introduced Synchronizable concept
- Introduced runOnUISync to replace deprecated executeOnUIRuntimeSync.
- feat:
runOnUISync
by @skusnierz in #8075
- feat:
- Introduced formal event loop on Worklet Runtimes
- Event loop for worklet runtimes by @piaskowyk in #7928
- Introduced scheduleOnUI to replace deprecated runOnUI
- feat(Worklets):
scheduleOnUI
by @skusnierz in #8124
- feat(Worklets):
- Renamed Shareable concept to Serializable and migrated it to use jsi::NativeState
- feat(Worklets): update
Shareable
implementation to usenativeState
instead ofHostObject
by @skusnierz in #7843 - feat:
Serializable
docs by @skusnierz in #8043
- feat(Worklets): update
- Added Bundle Mode support for React Native 0.81
- New docs
- feat(Worklets): new docs design by @skusnierz in #8090
What's Changed
- refactor(Worklets): Rename
Shareable
toSerializable
- part 1 by @skusnierz in #7845 - feat(Worklets): update
Shareable
implementation to usenativeState
instead ofHostObject
by @skusnierz in #7843 - chore: bump Reanimated and Worklets in docs by @tjzel in #7868
- Remove native view export by @piaskowyk in #7893
- feat(Worklets): make AsyncQueue virtual and public by @tjzel in #7886
- feat(Worklets): Update interface of the
createWorkletRuntime
function by @skusnierz in #7894 - fix(Worklets): _$$_IMPORT_ALL identifier clash in some web setups by @tjzel in #7900
- refactor(Worklets): extract RuntimeData file by @tjzel in #7905
- refactor(Worklets): remove supportsLocking parameter from Worklet Runtimes by @tjzel in #7904
- chore(Worklets): update compat table post 0.4.1 release by @tjzel in #7937
- feat(Worklets): allow passing user-implemented AsyncQueue to createWorkletRuntime by @tjzel in #7851
- feat(Worklets): runAsyncGuardedOnUI by @tjzel in #7906
- feat(Worklets): obtain WorkletRuntime from runtime address by @tjzel in #7911
- feat: Support for SVG circle base props by @MatiPl01 in #7750
- refactor(Worklets): rename
Shareable
toSerializable
- part 2 by @skusnierz in #7863 - chore(Worklets): add Bundle Mode nightly CI by @tjzel in #8037
- feat: rename
makeShareableCloneRecursive
tocreateSerializable
internally by @skusnierz in #8018 - chore: add Bundle Mode CI label to README by @tjzel in #8047
- refactor(Worklets): hide worklet caches by @tjzel in #7965
- feat: rename files which includes
Shareable
toSerializable
by @skusnierz in #8042 - chore(Worklets): generalize scripts for more unpackers by @tjzel in #7966
- fix: Missing serializable runtime tests file crash by @MatiPl01 in #8054
- feat:
Serializable
docs by @skusnierz in #8043 - feat(Worklets): replace
_WORKLET
withgetRuntimeKind
and__RUNTIME_KIND
by @tjzel in #7641 - docs(Worklets): getRuntimeKind by @tjzel in #8051
- feat:
scheduleOnRN
by @skusnierz in #8050 - feat(Worklets): Synchronizable by @tjzel in #7304
- feat:
scheduleOnRN
docs by @skusnierz in #8058 - fix(Worklets):
scheduleOnRN
tests by @skusnierz in #8085 - feat:
runOnUISync
by @skusnierz in #8075 - chore(Worklets): BundleMode patches for 0.81 by @tjzel in #8086
- fix(Worklets): file name typo by @skusnierz in #8107
- [ios][worklets] add explicit dependency on React-hermes by @chrfalch in #8120
- feat: get static feature flags in JS by @tjzel in #8096
- Fix static feature flags resolution on iOS by @tomekzaw in #8130
- feat(Worklets): new docs design by @skusnierz in #8090
- Event loop for worklet runtimes by @piaskowyk in #7928
- Fix worklets version checking in runtime by @piaskowyk in #8146
- fix(Worklets): podspec typo by @skusnierz in #8147
- feat(Worklets): update
getting-started
docs page by @skusnierz in #8139 - chore(Worklets): common compatibility source for docs and CI by @skusnierz in #8068
- Event Loop for worklet runtimes - tests by @piaskowyk in #8055
- Event Loop for worklet runtimes - rename test files by @piaskowyk in #8064
- chore(Worklets): docs improvements by @skusnierz in #8141
- feat(Worklets):
scheduleOnUI
by @skusnierz in #8124 - chore(Worklets): temporary API for audio api integration by @tjzel in #8158
- chore(Worklets): add missing tvos detection by @tjzel in #8169
- release(Worklets): 0.5.0 by @tjzel in #8173
New Contributors
- @sleez007 made their first contribution in #7885
- @soaple made their first contribution in #7882
- @mhawryluk made their first contribution in #7940
- @christophpurrer made their first contribution in #7926
- @zhouzh1 made their first contribution in #7953
- @RodolfoSilva made their first contribution in #8078
- @Phil9l made their first contribution in #8093
Full Changelog: worklets-0.4.0...worklets-0.5.0
4.0.3
What's Changed
- (cherry-pick) Fix "Cannot read property '__nativeTag' of null" (#8093) by @MatiPl01 in #8133
- (cherry-pick) fix: CSS transition crashes on complex prop animation by @MatiPl01 in #8134
- (cherry-pick) fix: Reduce Motions + animation callbacks by @MatiPl01 in #8151
- release(Reanimated): 4.0.3 by @tjzel in #8153
Full Changelog: 4.0.2...4.0.3
Worklets - 0.4.2
What's Changed
- cherry-pick(Worklets): add explicit dependency on React-hermes #8120 by @tjzel in #8129
- cherry-pick(Worklets): Fix ProMotion #8020 by @tjzel in #8128
- cherry-pick(Worklets): Fix static feature flags resolution on iOS #8130 by @tjzel in #8145
- cherry-pick(Worklets): podspec typo by @skusnierz in #8148
- release(Worklets): 0.4.2 by @tjzel in #8149
Full Changelog: worklets-0.4.1...worklets-0.4.2
4.0.2
What's Changed
- fix: CSS animations not being removed from the stylesheet on web by @MatiPl01 in #7952
- cherry-pick: withSpring overshoot clamping coordinates (#7959) by @tjzel in #7967
- Fix Gradle Configuration Cache by @MatiPl01 in #7958
- fix: Make sure that tagToJSPropNamesMapping is initialized before being used by @MatiPl01 in #7951
- fix: Keyframe LA easing not working properly on web by @MatiPl01 in #7991
- Bump minimal React Native version in assertions by @MatiPl01 in #7994
- Replace with ContextContainer::Shared with std::shared_ptr<const Cont⦠by @MatiPl01 in #7993
- Add synchronous props example by @MatiPl01 in #7995
- Add support for remaining synchronous props on Android by @MatiPl01 in #7992
- fix: LA Manager initialized too late on the UI runtime by @MatiPl01 in #8006
- Add support for percentage values for border radius in fast path on Android by @MatiPl01 in #7997
- Add "[Reanimated]" prefix in error messages for fast path on Android by @MatiPl01 in #7998
- fix: Make node marking as removable safer by @MatiPl01 in #8026
- Fix ProMotion by @MatiPl01 in #8027
- fix: Invalid web LA keyframe processing when from/to offset is used by @MatiPl01 in #8036
Full Changelog: 4.0.1...4.0.2
3.19.1
What's Changed
- fix: cpplint missing header include error by @MatiPl01 in #7849
- fix: Add missing check for the new architecture in 3.19 by @MatiPl01 in #7981
- fix: Failing linter checks in v3 by @MatiPl01 in #7990
- Update Java compatibility by @piaskowyk in #7996
- Bump minimal React Native version in assertions by @MatiPl01 in #8009
- fix: Keyframe LA easing not working properly on web by @MatiPl01 in #8007
- [Web LA] Adjust animation cleanup to slower devices by @MatiPl01 in #8008
- [Web LA] fix: Call callback in scheduleAnimationCleanup if not called already by @MatiPl01 in #8010
- [Web LA] Fix resetting scroll positions in exiting animations by @MatiPl01 in #8011
- chore: Bump macos-example to 0.78 by @MatiPl01 in #8016
- fix: Attempt to fix markNodeAsRemovable crashes by @MatiPl01 in #8005
- fix: Reanimated v3 compatibility checks by @MatiPl01 in #8013
- fix: Invalid web LA keyframe processing when from/to offset is used by @MatiPl01 in #8038
Full Changelog: 3.19.0...3.19.1
Worklets - 0.4.1
What's Changed
Full Changelog: worklets-0.4.0...worklets-0.4.1
4.0.1
4.0.0
Key Changes
- Released Reanimated 4.0.0 as a stable version.
- Renamed
useScrollViewOffset
touseScrollOffset
, now compatible with all scrollable components. - Improved layout animations, including fixes for reparenting, sticky headers, dynamic updates, and precision issues.
- Improved web support, addressing issues with CSS animations and transitions.
- Introduced Worklet version validation and troubleshooting to ensure that the compatible version of
react-native-worklets
is used with Reanimated. - Support for React Native 0.80 and 0.81.
- Removed legacy architecture code and deprecated APIs.
What's Changed
- fix: TVOS example crashing right after launch by @MatiPl01 in #7599
- docs: Add 3.18 to compatibility by @patrycjakalinska in #7605
- chore(deps): bump undici from 6.21.1 to 6.21.3 by @dependabot[bot] in #7532
- docs: Fix typo in scroll offset example by @n3ps in #7533
- fix: bump to C++20 by @okwasniewski in #7607
- fix: Crash in useScrollViewOffset if animatedRef is not initialized by @MatiPl01 in #7606
- Bump React Native to 0.80.0-rc.4 by @tomekzaw in #7614
- Remove redundant implementation of JSPropsUpdater by @piaskowyk in #7615
- Remove HostInstancePaper by @piaskowyk in #7611
- fix(Reanimated3): bump branch for nightly releases by @tjzel in #7609
- chore: Add missing CSS properties helper warnings by @MatiPl01 in #7616
- fix: useScrollViewOffset not working after delayed ref initialization by @MatiPl01 in #7612
- chore: Remove duplicate code from useAnimatedRef implementation by @MatiPl01 in #7618
- feat: Rename useScrollViewOffset to useScrollOffset and allow any scrollable by @MatiPl01 in #7597
- fix: useHandler updating on every render, even if dependencies didn't change by @MatiPl01 in #7604
- Update NativeEventsManager.ts by @ovieokeh in #7610
- docs: add Radon IDE banner to TOCItems by @kacperkapusciak in #7631
- docs: fix Radon IDE banner by @kacperkapusciak in #7634
- Correct test guide links by @brince0304 in #7635
- Use
react_native_assert
instead ofassert
by @tomekzaw in #7645 - feat: remove all legacy arch code from libraries by @tjzel in #7640
- Remove integration with
react-native-v8
andrnRuntime
argument fromWorkletRuntime
constructor by @tomekzaw in #7650 - chore(deps): bump brace-expansion from 1.1.11 to 1.1.12 by @dependabot[bot] in #7651
- Bump fabric-example to 0.80.0 by @tomekzaw in #7657
- Remove CollectionUtils.h by @tomekzaw in #7660
- chore: add rejest tests for makeShareableClone by @skusnierz in #7598
- Refactor props allowlists (replace
addWhitelistedUIProps
andaddWhitelistedNativeProps
withregisterJSProps
) by @tomekzaw in #7642 - Fix sticky header by @tomekzaw in #7668
- docs: Add neccessary CodeBlocks in TabItems by @patrycjakalinska in #7626
- Don't run exiting animations on modal removal by @bartlomiejbloniarz in #7667
- feat: Add CellRendererComponentStyle to Animated.FlatList by @gunnsteinnskula in #6573
- fix: Not working window size dependent layout animations by @MatiPl01 in #7681
- fix: Prevent uninitialized ScrollView warning from showing up on unmount by @MatiPl01 in #7671
- Remove unused
enableLayoutAnimations
by @piaskowyk in #7685 - chore: Separate reanimated logger from worklets logger by @MatiPl01 in #7648
- chore: Unit tests cleanup by @skusnierz in #7683
- chore: update circular dependency check by @skusnierz in #7687
- [Web] Do not call
getBoundingClientRect
on every update by @m-bert in #7678 - fix: Quick fix for getSnapshotBeforeUpdate error by @MatiPl01 in #7693
- chore: remove
useWorkletCallback
hook by @tjzel in #7698 - chore: Remove JS props updating via C++ by @MatiPl01 in #7684
- feat: Bump eslint to v9 by @skusnierz in #7570
- feat: Eslint rules to ensure logger usage instead of console by @MatiPl01 in #7691
- chore: cleanup after eslint bump by @tjzel in #7715
- docs: update aRef typing description to animatedRef in getRelativeCoords page by @fe-dudu in #7725
- Remove warnings in
addWhitelistedUIProps
andaddWhitelistedNativeProps
and mark as deprecated by @tomekzaw in #7682 - chore: Export reanimatedVersion variable instead of isReanimated3 by @MatiPl01 in #7724
- chore: Optimize css keyframes registration in the keyframes registry by @MatiPl01 in #7733
- chore: Migrate from ts-prune to knip by @MatiPl01 in #7721
- chore: Change updateKeyframes to work with folly::dynamic instead of jsi::Value by @MatiPl01 in #7734
- chore: move publicGlobals by @tjzel in #7735
- fix: add missing handling of
box-shadow
prop by @skusnierz in #7747 - fix: add missing dependency, update yarn.lock file for docs by @skusnierz in #7753
- fix: add missing dependencies to worklet docs by @skusnierz in #7756
- chore: Prepare routes to add svg prop animations examples by @MatiPl01 in #7752
- fix: remove unnecessary process
box-shadow
call by @skusnierz in #7748 - Prevent the frame loop from starting multiple times by @piaskowyk in #7766
- Add feature flags by @piaskowyk in #7697
- Fix reparenting by @bartlomiejbloniarz in #7732
- Fix zombie view when parent is moved by @bartlomiejbloniarz in #7768
- Remove
combineTransition
by @piaskowyk in #7771 - feat(Reanimated): add troubleshooting when Worklets are not installed by @tjzel in #7744
- chore(Reanimated): accept all pre-release versions of Worklets by @tjzel in #7774
- Rename
JSPropsExample
toCircularSliderExample
by @tomekzaw in #7769 - Set compile options using
target_compile_reactnative_options
fromreact-native-flags.cmake
by @tomekzaw in #7776 - Update react-native-is-edge-to-edge to 1.2.1 by @zoontek in #7729
- fix(Reanimated): Worklets version validation scripts failing in runtime by @tjzel in https...
Worklets - 0.4.0
What's changed
- feat(Worklets): new ShareableImport type #7512
- feat(Worklets): inject WorkletsModuleProxy in worklet runtimes #7486
- feat(Worklets): generated worklets #7513
- refactor(Worklets)(makeShareableClone): add makeShareableTurbomoduleLike #7567
- feat(Worklets): add Worklet Runtime bundle entry #7562
- feat(Worklets): resolve global local variable names conflicts #7577
- feat(Worklets): workletizable modules #7584
- feat(Worklets): production experimental bundling #7590
- feat(Worklets): add systrace section for profiling #7661
- feat(Worklets): add invokeSync in JSScheduler #7663
- chore(Worklets): detect runtime initialization failures with experimental bundling #7638
- feat(Worklets): improve errors in Worklets Babel Plugin #7699
- refactor(Worklets): define JS initialization pipeline #7652
- feat(Worklets): rename experimental bundling to Bundle Mode #7690
- feat(Worklets): support for cloning Set and Map #7219
- feat: react-native-worklets docs #7717
- feat(Worklets): RuntimeManager #7739
- feat(Worklets): docs for Bundle Mode #7790
- Worklets feature flags #7799
- iOS ProMotion stutters #7624
- feat(Worklets): runLoop polyfills #7765
- feat(Worklets): Add cpp validation of worklets version #7820
- feat(Worklets): Add troubleshooting section in docs #7814
- fix(Worklets): default imports in Bundle Mode #7836
- feat(Worklets): add fast refresh in bundle mode #7688
- feat(Worklets): gracefully handle imports from 'react-native' on Worklet Runtimes #7719
- chore(Worklets): update README and getting started docs #7856