From d3c5f6d1df5ffee636ab6fa771bc8df9afc7d32a Mon Sep 17 00:00:00 2001 From: Tim Yung Date: Tue, 7 Jan 2025 10:05:15 -0800 Subject: [PATCH] Animated: Add Missing `super.__attach()` Calls (#48513) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/48513 While refactoring `Animated`, I noticed that many subclasses of `AnimatedNode` override `__attach` without invoking the superclass method, even though we do this for `__detach`. In order to minimize surprise (e.g. if someone were to add logic into `AnimatedNode.prototype.__attach`), this diff updates all method overrides to invoke `super.__attach()`. Changelog: [Internal] Reviewed By: javache Differential Revision: D67884975 fbshipit-source-id: f3a5456cf944d4d70ba1cfe7c44897c110e5fc7e --- .../react-native/Libraries/Animated/nodes/AnimatedAddition.js | 1 + .../react-native/Libraries/Animated/nodes/AnimatedDiffClamp.js | 1 + .../react-native/Libraries/Animated/nodes/AnimatedDivision.js | 1 + .../Libraries/Animated/nodes/AnimatedInterpolation.js | 1 + packages/react-native/Libraries/Animated/nodes/AnimatedModulo.js | 1 + .../Libraries/Animated/nodes/AnimatedMultiplication.js | 1 + packages/react-native/Libraries/Animated/nodes/AnimatedObject.js | 1 + packages/react-native/Libraries/Animated/nodes/AnimatedProps.js | 1 + packages/react-native/Libraries/Animated/nodes/AnimatedStyle.js | 1 + .../react-native/Libraries/Animated/nodes/AnimatedSubtraction.js | 1 + .../react-native/Libraries/Animated/nodes/AnimatedTracking.js | 1 + .../react-native/Libraries/Animated/nodes/AnimatedTransform.js | 1 + 12 files changed, 12 insertions(+) diff --git a/packages/react-native/Libraries/Animated/nodes/AnimatedAddition.js b/packages/react-native/Libraries/Animated/nodes/AnimatedAddition.js index 5dc40064c8d..7b885521c28 100644 --- a/packages/react-native/Libraries/Animated/nodes/AnimatedAddition.js +++ b/packages/react-native/Libraries/Animated/nodes/AnimatedAddition.js @@ -52,6 +52,7 @@ export default class AnimatedAddition extends AnimatedWithChildren { __attach(): void { this._a.__addChild(this); this._b.__addChild(this); + super.__attach(); } __detach(): void { diff --git a/packages/react-native/Libraries/Animated/nodes/AnimatedDiffClamp.js b/packages/react-native/Libraries/Animated/nodes/AnimatedDiffClamp.js index 242bd840442..a192bee7215 100644 --- a/packages/react-native/Libraries/Animated/nodes/AnimatedDiffClamp.js +++ b/packages/react-native/Libraries/Animated/nodes/AnimatedDiffClamp.js @@ -60,6 +60,7 @@ export default class AnimatedDiffClamp extends AnimatedWithChildren { __attach(): void { this._a.__addChild(this); + super.__attach(); } __detach(): void { diff --git a/packages/react-native/Libraries/Animated/nodes/AnimatedDivision.js b/packages/react-native/Libraries/Animated/nodes/AnimatedDivision.js index 4abbb362f4e..39c6eff566e 100644 --- a/packages/react-native/Libraries/Animated/nodes/AnimatedDivision.js +++ b/packages/react-native/Libraries/Animated/nodes/AnimatedDivision.js @@ -68,6 +68,7 @@ export default class AnimatedDivision extends AnimatedWithChildren { __attach(): void { this._a.__addChild(this); this._b.__addChild(this); + super.__attach(); } __detach(): void { diff --git a/packages/react-native/Libraries/Animated/nodes/AnimatedInterpolation.js b/packages/react-native/Libraries/Animated/nodes/AnimatedInterpolation.js index e425d1cbf48..908790bca5b 100644 --- a/packages/react-native/Libraries/Animated/nodes/AnimatedInterpolation.js +++ b/packages/react-native/Libraries/Animated/nodes/AnimatedInterpolation.js @@ -376,6 +376,7 @@ export default class AnimatedInterpolation< __attach(): void { this._parent.__addChild(this); + super.__attach(); } __detach(): void { diff --git a/packages/react-native/Libraries/Animated/nodes/AnimatedModulo.js b/packages/react-native/Libraries/Animated/nodes/AnimatedModulo.js index 3dd59b88ee6..0766ae7918c 100644 --- a/packages/react-native/Libraries/Animated/nodes/AnimatedModulo.js +++ b/packages/react-native/Libraries/Animated/nodes/AnimatedModulo.js @@ -47,6 +47,7 @@ export default class AnimatedModulo extends AnimatedWithChildren { __attach(): void { this._a.__addChild(this); + super.__attach(); } __detach(): void { diff --git a/packages/react-native/Libraries/Animated/nodes/AnimatedMultiplication.js b/packages/react-native/Libraries/Animated/nodes/AnimatedMultiplication.js index 3e2f66efa11..dcf3066e708 100644 --- a/packages/react-native/Libraries/Animated/nodes/AnimatedMultiplication.js +++ b/packages/react-native/Libraries/Animated/nodes/AnimatedMultiplication.js @@ -51,6 +51,7 @@ export default class AnimatedMultiplication extends AnimatedWithChildren { __attach(): void { this._a.__addChild(this); this._b.__addChild(this); + super.__attach(); } __detach(): void { diff --git a/packages/react-native/Libraries/Animated/nodes/AnimatedObject.js b/packages/react-native/Libraries/Animated/nodes/AnimatedObject.js index 8077ed9d22f..ba0aab03c76 100644 --- a/packages/react-native/Libraries/Animated/nodes/AnimatedObject.js +++ b/packages/react-native/Libraries/Animated/nodes/AnimatedObject.js @@ -136,6 +136,7 @@ export default class AnimatedObject extends AnimatedWithChildren { const node = nodes[ii]; node.__addChild(this); } + super.__attach(); } __detach(): void { diff --git a/packages/react-native/Libraries/Animated/nodes/AnimatedProps.js b/packages/react-native/Libraries/Animated/nodes/AnimatedProps.js index 80e29a5704c..82121000ccc 100644 --- a/packages/react-native/Libraries/Animated/nodes/AnimatedProps.js +++ b/packages/react-native/Libraries/Animated/nodes/AnimatedProps.js @@ -160,6 +160,7 @@ export default class AnimatedProps extends AnimatedNode { const node = nodes[ii]; node.__addChild(this); } + super.__attach(); } __detach(): void { diff --git a/packages/react-native/Libraries/Animated/nodes/AnimatedStyle.js b/packages/react-native/Libraries/Animated/nodes/AnimatedStyle.js index 439d1a46fe5..89a2561ac44 100644 --- a/packages/react-native/Libraries/Animated/nodes/AnimatedStyle.js +++ b/packages/react-native/Libraries/Animated/nodes/AnimatedStyle.js @@ -201,6 +201,7 @@ export default class AnimatedStyle extends AnimatedWithChildren { const node = nodes[ii]; node.__addChild(this); } + super.__attach(); } __detach(): void { diff --git a/packages/react-native/Libraries/Animated/nodes/AnimatedSubtraction.js b/packages/react-native/Libraries/Animated/nodes/AnimatedSubtraction.js index 7e0b9cad884..39601816e98 100644 --- a/packages/react-native/Libraries/Animated/nodes/AnimatedSubtraction.js +++ b/packages/react-native/Libraries/Animated/nodes/AnimatedSubtraction.js @@ -52,6 +52,7 @@ export default class AnimatedSubtraction extends AnimatedWithChildren { __attach(): void { this._a.__addChild(this); this._b.__addChild(this); + super.__attach(); } __detach(): void { diff --git a/packages/react-native/Libraries/Animated/nodes/AnimatedTracking.js b/packages/react-native/Libraries/Animated/nodes/AnimatedTracking.js index f4541817aed..8fabf2cc9fd 100644 --- a/packages/react-native/Libraries/Animated/nodes/AnimatedTracking.js +++ b/packages/react-native/Libraries/Animated/nodes/AnimatedTracking.js @@ -67,6 +67,7 @@ export default class AnimatedTracking extends AnimatedNode { let {platformConfig} = this._animationConfig; this.__makeNative(platformConfig); } + super.__attach(); } __detach(): void { diff --git a/packages/react-native/Libraries/Animated/nodes/AnimatedTransform.js b/packages/react-native/Libraries/Animated/nodes/AnimatedTransform.js index c77a546090f..b0b79b1b0b6 100644 --- a/packages/react-native/Libraries/Animated/nodes/AnimatedTransform.js +++ b/packages/react-native/Libraries/Animated/nodes/AnimatedTransform.js @@ -117,6 +117,7 @@ export default class AnimatedTransform extends AnimatedWithChildren { const node = nodes[ii]; node.__addChild(this); } + super.__attach(); } __detach(): void {