mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
6525f9b082
Summary: These dynamic_casts aren't really giving us much (they have never fired once in dev! and don't run in prod anyway). They also prevent us from disabling RTTI. So, let's get rid of them. Changelog: [Internal] Reviewed By: philIip Differential Revision: D31634895 fbshipit-source-id: 4a9b259837127feb324f64fa3e9e23eb1cc481a6
47 lines
1.4 KiB
C++
47 lines
1.4 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 <react/debug/react_native_assert.h>
|
|
#include <react/renderer/components/inputaccessory/InputAccessoryShadowNode.h>
|
|
#include <react/renderer/core/ConcreteComponentDescriptor.h>
|
|
|
|
namespace facebook {
|
|
namespace react {
|
|
|
|
/*
|
|
* Descriptor for <InputAccessoryView> component.
|
|
*/
|
|
class InputAccessoryComponentDescriptor final
|
|
: public ConcreteComponentDescriptor<InputAccessoryShadowNode> {
|
|
public:
|
|
using ConcreteComponentDescriptor::ConcreteComponentDescriptor;
|
|
|
|
void adopt(ShadowNode::Unshared const &shadowNode) const override {
|
|
auto concreteShadowNode =
|
|
std::static_pointer_cast<InputAccessoryShadowNode>(shadowNode);
|
|
|
|
auto layoutableShadowNode =
|
|
std::static_pointer_cast<YogaLayoutableShadowNode>(concreteShadowNode);
|
|
|
|
auto state =
|
|
std::static_pointer_cast<const InputAccessoryShadowNode::ConcreteState>(
|
|
shadowNode->getState());
|
|
auto stateData = state->getData();
|
|
|
|
layoutableShadowNode->setSize(
|
|
Size{stateData.viewportSize.width, stateData.viewportSize.height});
|
|
layoutableShadowNode->setPositionType(YGPositionTypeAbsolute);
|
|
|
|
ConcreteComponentDescriptor::adopt(shadowNode);
|
|
}
|
|
};
|
|
|
|
} // namespace react
|
|
} // namespace facebook
|