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
45 lines
1.3 KiB
C++
45 lines
1.3 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/renderer/components/image/ImageShadowNode.h>
|
|
#include <react/renderer/core/ConcreteComponentDescriptor.h>
|
|
#include <react/renderer/imagemanager/ImageManager.h>
|
|
#include <react/utils/ContextContainer.h>
|
|
|
|
namespace facebook {
|
|
namespace react {
|
|
|
|
/*
|
|
* Descriptor for <Image> component.
|
|
*/
|
|
class ImageComponentDescriptor final
|
|
: public ConcreteComponentDescriptor<ImageShadowNode> {
|
|
public:
|
|
ImageComponentDescriptor(ComponentDescriptorParameters const ¶meters)
|
|
: ConcreteComponentDescriptor(parameters),
|
|
imageManager_(std::make_shared<ImageManager>(contextContainer_)){};
|
|
|
|
void adopt(ShadowNode::Unshared const &shadowNode) const override {
|
|
ConcreteComponentDescriptor::adopt(shadowNode);
|
|
|
|
auto imageShadowNode =
|
|
std::static_pointer_cast<ImageShadowNode>(shadowNode);
|
|
|
|
// `ImageShadowNode` uses `ImageManager` to initiate image loading and
|
|
// communicate the loading state and results to mounting layer.
|
|
imageShadowNode->setImageManager(imageManager_);
|
|
}
|
|
|
|
private:
|
|
const SharedImageManager imageManager_;
|
|
};
|
|
|
|
} // namespace react
|
|
} // namespace facebook
|