Remove native animation fabric sync in JS and infinite animation loop workaround (#51264)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/51264

## Changelog:

[General] [Changed] - Remove native animation fabric sync in JS and infinite animation loop workaround, when cxxNativeAnimated is enabled

when cxxNativeAnimated is enabled, we'll sync native animation props back to Fabric in native, when that happens we can remove the code in JS for same purpose

Reviewed By: lenaic

Differential Revision: D74198568

fbshipit-source-id: 5b313a5e8c07058f939134e9a6d60dcfa3b45842
This commit is contained in:
Zeya Peng
2025-05-14 11:31:11 -07:00
committed by Facebook GitHub Bot
parent 109fe1394a
commit 2d7342f8b4
2 changed files with 9 additions and 3 deletions
@@ -13,6 +13,7 @@ import type AnimatedNode from '../nodes/AnimatedNode';
import type AnimatedValue from '../nodes/AnimatedValue';
import NativeAnimatedHelper from '../../../src/private/animated/NativeAnimatedHelper';
import * as ReactNativeFeatureFlags from '../../../src/private/featureflags/ReactNativeFeatureFlags';
import AnimatedProps from '../nodes/AnimatedProps';
export type EndResult = {
@@ -149,8 +150,10 @@ export default class Animation {
if (value != null) {
animatedValue.__onAnimatedValueUpdateReceived(value, offset);
if (this.__isLooping === true) {
return;
if (!ReactNativeFeatureFlags.cxxNativeAnimatedEnabled()) {
if (this.__isLooping === true) {
return;
}
}
// Once the JS side node is synced with the updated values, trigger an
@@ -128,7 +128,10 @@ export default function createAnimatedPropsHook(
if (node.__isNative) {
// Check 2: this is an animation driven by native.
// In native driven animations, this callback is only called once the animation completes.
if (isFabricNode) {
if (
isFabricNode &&
!ReactNativeFeatureFlags.cxxNativeAnimatedEnabled()
) {
// Call `scheduleUpdate` to synchronise Fiber and Shadow tree.
// Must not be called in Paper.
scheduleUpdate();