Skip to content

Commit ccaa53e

Browse files
committed
Scope Native Animated null override clearing
1 parent 8fc40a7 commit ccaa53e

1 file changed

Lines changed: 11 additions & 8 deletions

File tree

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -627,7 +627,7 @@ internal constructor(
627627
if (ReactNativeFeatureFlags.overrideBySynchronousMountPropsAtMountingAndroid()) {
628628
val propsMap = getMapFromPropsReadableMap(props)
629629
val synchronousMountProps = tagToSynchronousMountProps[reactTag] ?: mutableMapOf()
630-
removeNullPropsFromPropsReadableMap(props, synchronousMountProps)
630+
removeNullTransformAndOpacityPropsFromPropsReadableMap(props, synchronousMountProps)
631631
synchronousMountProps.putAll(propsMap)
632632
if (synchronousMountProps.isEmpty()) {
633633
tagToSynchronousMountProps.remove(reactTag)
@@ -1394,16 +1394,19 @@ internal constructor(
13941394
return outputMap
13951395
}
13961396

1397-
private fun removeNullPropsFromPropsReadableMap(
1397+
private fun removeNullTransformAndOpacityPropsFromPropsReadableMap(
13981398
readableMap: ReadableMap,
13991399
outputMap: MutableMap<String, Any>,
14001400
) {
1401-
val iterator = readableMap.keySetIterator()
1402-
while (iterator.hasNextKey()) {
1403-
val propKey = iterator.nextKey()
1404-
if (readableMap.getType(propKey) == ReadableType.Null) {
1405-
outputMap.remove(propKey)
1406-
}
1401+
// Native Animated uses synchronous null updates to restore animated-managed props.
1402+
// Keep this scoped to props stored by this override path today.
1403+
if (readableMap.hasKey(PROP_TRANSFORM) &&
1404+
readableMap.getType(PROP_TRANSFORM) == ReadableType.Null) {
1405+
outputMap.remove(PROP_TRANSFORM)
1406+
}
1407+
if (readableMap.hasKey(PROP_OPACITY) &&
1408+
readableMap.getType(PROP_OPACITY) == ReadableType.Null) {
1409+
outputMap.remove(PROP_OPACITY)
14071410
}
14081411
}
14091412

0 commit comments

Comments
 (0)