yarn react-native-reanimated 4.3.0
Reanimated - 4.3.0

7 hours ago

Key changes

CSS SVG Animations

CSS animations now support animating SVG components and their properties, including Path, Image, LinearGradient, RadialGradient, Pattern and Text. This includes support for animating the d property of Path components with a special handling for path morphing.

Shared Value re-implementation

Shared Value internal implementation changed - now it uses Shareable type from react-native-worklets as its internal value container. That means you can finally use Shared Values from other Worklet Runtimes than just the UI Runtime. Also USE_SYNCHRONIZABLE_IN_MUTABLE optimization feature flag is now enabled by default.

  • feat(Reanimated): enable Synchronizable in Mutable by default by @tjzel in #9068
  • feat(Reanimated): use Shareable for Mutables by @tjzel in #9004

Animated Styles type changes

TypeScript type of Animated Styles now makes it impossible to accidentally pass them to non-animated components. This replaces previous runtime-check for this kind of mistake, which proved to be prone to false positives.

  • refactor: make AnimatedStyle type fail on non-animated components by @tjzel in #8990

Fixes

  • fix: use native processTransformOrigin instead of web version by @maxpotemkin in #8738
  • fix: prefab headers locations by @tjzel in #8747
  • fix: Proper support for nested animatedProps objects and correct cleanup by @MatiPl01 in #8726
  • fix(web): Support originX and originY in layout animations by @choi138 in #8733
  • fix: Web entering animations triggered on view exiting by @MatiPl01 in #8772
  • fix: Animation names array order updates on keyframes order change by @MatiPl01 in #8777
  • fix: Infinity parsing in web CSS animationIterationCount by @MatiPl01 in #8787
  • fix: FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS feature flag crashes by @MatiPl01 in #8822
  • fix: SharedValue.modify strict type definition by @huextrat in #8846
  • fix: FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS incorrect color alphas by @DouweBos in #8841
  • fix: Guard for undefined style in Jest utils by @msynowski in #8878
  • fix: Stop passing nativeID to component in jest unit tests by @MatiPl01 in #8881
  • Fix the issue with next.js throwing errors while hydrating by @5ZYSZ3K in #8869
  • fix: useHandler not working on web without babel plugin by @MatiPl01 in #8883
  • fix: noplugin option being ignored in the web-example by @MatiPl01 in #8933
  • fix: CSS SVGPath android parsing bugfix by @wisniewskij in #8918
  • fix: free __cxa_demangle allocations in SingleInstanceChecker by @jingjing2222 in #8964
  • fix: pass shouldPersistRemote to cloneObjectProperties by @aljadan in #8995
  • fix: Fix native matchVersion not allowing patch version mismatches by @kitten in #9018
  • fix: CSS transitions not working when a prop is added or removed by @MatiPl01 in #9014
    react-native-reanimated/pull/9015
  • fix: static frameworks missing header paths by @tjzel in #9035
  • Fix sync props back to React mechanism by @tomekzaw in #9046
  • Fix: Add missing initialization in SVG Path by @wisniewskij in #9058
  • fix: RN 0.81 TS errors by @tjzel in #9059
  • fix: CSS animation box-shadow crashes by @MatiPl01 in #9065
  • fix: CSS transition flickering on transitionProperty change by @MatiPl01 in #9120
  • fix: guard against null styleProps in PropsRegistry GC by @mobinni in #9052
  • fix - passing negative values to filter crashes on iOS by @intergalacticspacehighway in #9155
  • [Android] Fix commits during drawing by @bartlomiejbloniarz in #9072
  • perf: Don't trigger CSS transition for props with effective duration 0 by @MatiPl01 in #9118
  • chore: useHandler reimplementation by @MatiPl01 in #9090

Refactors

Chores

  • Add _beginSection and _endSection JSI bindings for systraces by @tomekzaw in #9101
  • Add _startProfiling and _stopProfiling JSI bindings for Hermes sampling profiler by @tomekzaw in #9102
  • feat: Common fallback style props builder for any unsupported component by @MatiPl01 in #8989
  • feat: peer dependencies validation by @tjzel in #9019
  • feat: stable API versioning checks by @tjzel in #9105
  • chore: modernize build.gradle scripts by @tjzel in #8707
  • chore: consider new arch always enabled in react-native 0.82+ by @gabrieldonadel in #8771
  • chore: Change props overriding behavior in the props builder by @MatiPl01 in #8877
  • chore: Change folly::dynamic to jsi::Value in updateKeyframes for CSS transitions by @MatiPl01 in #8982
  • chore: bump gradle versions by @tjzel in #8994
  • chore: only consider latest patch in compatibility tables by @tjzel in #9142
  • chore: unpin dependencies by @tjzel in #9143
  • chore(Rea): migrate to RCTModernEventEmitter by @tjzel in #9033
  • chore: Remove unused hasProp function, improve transformOrigin processor types by @MatiPl01 in #9173
  • Enable USE_COMMIT_HOOK_ONLY_FOR_REACT_COMMITS feature flag by default by @tomekzaw in #8716
  • Remove workaround for dynamic frameworks by @tomekzaw in #8927
  • Remove deprecated react-test-renderer type from published declarations by @YevheniiKotyrlo in #9055
  • Reorder examples imports by @tomekzaw in #9112
  • Bump minimal React Native version to 0.81 by @tomekzaw in #9109
  • Remove unnecessary react_native_assert for surfaceId by @tomekzaw in #9158
  • Remove dead code in build.gradle by @tomekzaw in #9177

New Contributors

Full Changelog: 4.2.0...4.3.0

Don't miss a new react-native-reanimated release

NewReleases is sending notifications on new releases.