mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Remove use of TextLayoutManager::Shared and SharedTextLayoutManager
Summary: changelog: [internal] For some reason, using `TextLayoutManager::Shared` in `TextInputShadowNode` trips up clang tidy linter. We have a plan to move away from `*::Shared` anyway, so let's remove it from `TextInputShadowNode` now. Why do we want to move away from `*::Shared`? Using `TextLayoutManager::Shared` is confusing for people unfamiliar with Fabric's codebase. It expresses a concept of immutability but uses term `shared`. Term shared is already used in C++ `std::shared_ptr`. Reviewed By: fkgozali Differential Revision: D33186422 fbshipit-source-id: 10ee588735997f5fedc372a1d1e3d9cd9684178a
This commit is contained in:
committed by
Facebook GitHub Bot
parent
3e8934b49b
commit
bcc4ab35da
@@ -41,7 +41,7 @@ class ParagraphComponentDescriptor final
|
||||
}
|
||||
|
||||
private:
|
||||
SharedTextLayoutManager textLayoutManager_;
|
||||
std::shared_ptr<TextLayoutManager const> textLayoutManager_;
|
||||
};
|
||||
|
||||
} // namespace react
|
||||
|
||||
@@ -93,9 +93,9 @@ Content ParagraphShadowNode::getContentWithMeasuredAttachments(
|
||||
}
|
||||
|
||||
void ParagraphShadowNode::setTextLayoutManager(
|
||||
SharedTextLayoutManager textLayoutManager) {
|
||||
std::shared_ptr<TextLayoutManager const> textLayoutManager) {
|
||||
ensureUnsealed();
|
||||
textLayoutManager_ = textLayoutManager;
|
||||
textLayoutManager_ = std::move(textLayoutManager);
|
||||
}
|
||||
|
||||
void ParagraphShadowNode::updateStateIfNeeded(Content const &content) {
|
||||
|
||||
@@ -57,7 +57,8 @@ class ParagraphShadowNode final : public ConcreteViewShadowNode<
|
||||
* `ParagraphShadowNode` uses the manager to measure text content
|
||||
* and construct `ParagraphState` objects.
|
||||
*/
|
||||
void setTextLayoutManager(SharedTextLayoutManager textLayoutManager);
|
||||
void setTextLayoutManager(
|
||||
std::shared_ptr<TextLayoutManager const> textLayoutManager);
|
||||
|
||||
#pragma mark - LayoutableShadowNode
|
||||
|
||||
@@ -96,7 +97,7 @@ class ParagraphShadowNode final : public ConcreteViewShadowNode<
|
||||
*/
|
||||
void updateStateIfNeeded(Content const &content);
|
||||
|
||||
SharedTextLayoutManager textLayoutManager_;
|
||||
std::shared_ptr<TextLayoutManager const> textLayoutManager_;
|
||||
|
||||
/*
|
||||
* Cached content of the subtree started from the node.
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ class TextInputComponentDescriptor final
|
||||
}
|
||||
|
||||
private:
|
||||
TextLayoutManager::Shared textLayoutManager_;
|
||||
std::shared_ptr<TextLayoutManager const> textLayoutManager_;
|
||||
};
|
||||
|
||||
} // namespace react
|
||||
|
||||
+2
-2
@@ -71,9 +71,9 @@ AttributedString TextInputShadowNode::getAttributedString(
|
||||
}
|
||||
|
||||
void TextInputShadowNode::setTextLayoutManager(
|
||||
TextLayoutManager::Shared const &textLayoutManager) {
|
||||
std::shared_ptr<TextLayoutManager const> textLayoutManager) {
|
||||
ensureUnsealed();
|
||||
textLayoutManager_ = textLayoutManager;
|
||||
textLayoutManager_ = std::move(textLayoutManager);
|
||||
}
|
||||
|
||||
void TextInputShadowNode::updateStateIfNeeded(
|
||||
|
||||
@@ -46,7 +46,8 @@ class TextInputShadowNode final : public ConcreteViewShadowNode<
|
||||
* `TextInputShadowNode` uses the manager to measure text content
|
||||
* and construct `TextInputState` objects.
|
||||
*/
|
||||
void setTextLayoutManager(TextLayoutManager::Shared const &textLayoutManager);
|
||||
void setTextLayoutManager(
|
||||
std::shared_ptr<TextLayoutManager const> textLayoutManager);
|
||||
|
||||
#pragma mark - LayoutableShadowNode
|
||||
|
||||
@@ -75,7 +76,7 @@ class TextInputShadowNode final : public ConcreteViewShadowNode<
|
||||
AttributedStringBox attributedStringBoxToMeasure(
|
||||
LayoutContext const &layoutContext) const;
|
||||
|
||||
TextLayoutManager::Shared textLayoutManager_;
|
||||
std::shared_ptr<TextLayoutManager const> textLayoutManager_;
|
||||
};
|
||||
|
||||
} // namespace react
|
||||
|
||||
@@ -8,5 +8,27 @@
|
||||
#include "TextInputState.h"
|
||||
|
||||
namespace facebook {
|
||||
namespace react {} // namespace react
|
||||
namespace react {
|
||||
|
||||
#ifdef ANDROID
|
||||
TextInputState::TextInputState(
|
||||
TextInputState const &previousState,
|
||||
folly::dynamic data){};
|
||||
|
||||
/*
|
||||
* Empty implementation for Android because it doesn't use this class.
|
||||
*/
|
||||
folly::dynamic TextInputState::getDynamic() const {
|
||||
return {};
|
||||
};
|
||||
|
||||
/*
|
||||
* Empty implementation for Android because it doesn't use this class.
|
||||
*/
|
||||
MapBuffer TextInputState::getMapBuffer() const {
|
||||
return MapBufferBuilder::EMPTY();
|
||||
};
|
||||
#endif
|
||||
|
||||
} // namespace react
|
||||
} // namespace facebook
|
||||
|
||||
@@ -25,6 +25,8 @@ namespace react {
|
||||
*/
|
||||
class TextInputState final {
|
||||
public:
|
||||
TextInputState() = default;
|
||||
|
||||
/*
|
||||
* All content of <TextInput> component.
|
||||
*/
|
||||
@@ -50,9 +52,17 @@ class TextInputState final {
|
||||
* text rendering infrastructure which is capable to render the
|
||||
* `AttributedString`.
|
||||
*/
|
||||
SharedTextLayoutManager layoutManager;
|
||||
std::shared_ptr<TextLayoutManager const> layoutManager;
|
||||
|
||||
size_t mostRecentEventCount{0};
|
||||
|
||||
#ifdef ANDROID
|
||||
TextInputState(TextInputState const &previousState, folly::dynamic data);
|
||||
|
||||
folly::dynamic getDynamic() const;
|
||||
|
||||
MapBuffer getMapBuffer() const;
|
||||
#endif
|
||||
};
|
||||
|
||||
} // namespace react
|
||||
|
||||
@@ -20,15 +20,11 @@ namespace react {
|
||||
|
||||
class TextLayoutManager;
|
||||
|
||||
using SharedTextLayoutManager = std::shared_ptr<const TextLayoutManager>;
|
||||
|
||||
/*
|
||||
* Cross platform facade for iOS-specific RCTTTextLayoutManager.
|
||||
*/
|
||||
class TextLayoutManager {
|
||||
public:
|
||||
using Shared = std::shared_ptr<TextLayoutManager const>;
|
||||
|
||||
TextLayoutManager(ContextContainer::Shared const &contextContainer);
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user