Prevent double application of opacity and backgroundColor on text

Summary:
The new props parsing path (introduced in https://www.internalfb.com/diff/D37051020 (https://github.com/facebook/react-native/commit/af1eae9ea313b016f111a25b5252b70aea99aedd)) resulted in opacity and backgroundColor being applied twice.

Specifically, the new prop setter path basically results in the ParagraphProps' textAttributes (via ConcreteComponentDescriptor.cloneProps, via ParagraphProps.setProp) to include opacity and backgroundColor, which is not desired as they are both applied again on view.

Similar issue faced in the past: https://www.internalfb.com/diff/D19764144 (https://github.com/facebook/react-native/commit/8fe6883fea5d92c8378a9642e8369c56f20872a7)

Changelog:
[Internal] - Prevent double application of opacity and backgroundColor on text

Reviewed By: ryancat

Differential Revision: D37801663

fbshipit-source-id: 4b5ebe5ff20b80833edb2141df883f33c69ab5d6
This commit is contained in:
Genki Kondo
2022-07-12 20:01:52 -07:00
committed by Facebook GitHub Bot
parent beca1a1c44
commit 5a47463e1f
@@ -58,6 +58,13 @@ void ParagraphProps::setProp(
// reuse the same values.
ViewProps::setProp(context, hash, propName, value);
BaseTextProps::setProp(context, hash, propName, value);
/*
* These props are applied to `View`, therefore they must not be a part of
* base text attributes.
*/
textAttributes.opacity = std::numeric_limits<Float>::quiet_NaN();
textAttributes.backgroundColor = {};
}
#pragma mark - DebugStringConvertible