mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: This fixes a bug in Android TextInlineViews that was reproducible in ActivityLog screen, see T63438920 Since Text are virtual nodes it is not necessary for these kind of views to stack views during diffing. changelog: [internal] Reviewed By: shergin Differential Revision: D20448085 fbshipit-source-id: 2d852975493bf6bcc7840c80c5de5cb5f7890303
62 lines
1.5 KiB
C++
62 lines
1.5 KiB
C++
/*
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <limits>
|
|
|
|
#include <react/components/text/BaseTextShadowNode.h>
|
|
#include <react/components/text/TextProps.h>
|
|
#include <react/components/view/ViewEventEmitter.h>
|
|
#include <react/core/ConcreteShadowNode.h>
|
|
|
|
namespace facebook {
|
|
namespace react {
|
|
|
|
extern const char TextComponentName[];
|
|
|
|
using TextEventEmitter = TouchEventEmitter;
|
|
|
|
class TextShadowNode : public ConcreteShadowNode<
|
|
TextComponentName,
|
|
ShadowNode,
|
|
TextProps,
|
|
TextEventEmitter>,
|
|
public BaseTextShadowNode {
|
|
public:
|
|
static ShadowNodeTraits BaseTraits() {
|
|
auto traits = ConcreteShadowNode::BaseTraits();
|
|
|
|
#ifdef ANDROID
|
|
traits.set(ShadowNodeTraits::Trait::FormsView);
|
|
#endif
|
|
|
|
return traits;
|
|
}
|
|
|
|
using ConcreteShadowNode::ConcreteShadowNode;
|
|
|
|
#ifdef ANDROID
|
|
using BaseShadowNode = ConcreteShadowNode<
|
|
TextComponentName,
|
|
ShadowNode,
|
|
TextProps,
|
|
TextEventEmitter>;
|
|
|
|
TextShadowNode(
|
|
ShadowNodeFragment const &fragment,
|
|
ShadowNodeFamily::Shared const &family,
|
|
ShadowNodeTraits traits)
|
|
: BaseShadowNode(fragment, family, traits), BaseTextShadowNode() {
|
|
orderIndex_ = std::numeric_limits<decltype(orderIndex_)>::max();
|
|
}
|
|
#endif
|
|
};
|
|
|
|
} // namespace react
|
|
} // namespace facebook
|