Files
react-native/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp
T
Joshua Gross 175b1ea636 Pass PropsParserContext to prop parsing layer
Summary: Changelog: [internal]

Reviewed By: mdvacca

Differential Revision: D29921232

fbshipit-source-id: ba045f545b564aedf1b287045a0e75428de30a0f
2021-07-28 20:18:20 -07:00

49 lines
1.6 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.
*/
#include "UnimplementedViewComponentDescriptor.h"
#include <react/debug/react_native_assert.h>
namespace facebook {
namespace react {
ComponentHandle UnimplementedViewComponentDescriptor::getComponentHandle()
const {
return reinterpret_cast<ComponentHandle>(getComponentName());
}
ComponentName UnimplementedViewComponentDescriptor::getComponentName() const {
return std::static_pointer_cast<std::string const>(this->flavor_)->c_str();
}
Props::Shared UnimplementedViewComponentDescriptor::cloneProps(
PropsParserContext const &context,
Props::Shared const &props,
RawProps const &rawProps) const {
auto clonedProps =
ConcreteComponentDescriptor<UnimplementedViewShadowNode>::cloneProps(
context, props, rawProps);
react_native_assert(
std::dynamic_pointer_cast<UnimplementedViewProps const>(clonedProps));
// We have to clone `Props` object one more time to make sure that we have
// an unshared (and non-`const`) copy of it which we can mutate.
RawProps emptyRawProps{};
emptyRawProps.parse(rawPropsParser_, context);
auto unimplementedViewProps = std::make_shared<UnimplementedViewProps>(
context,
*std::static_pointer_cast<UnimplementedViewProps const>(clonedProps),
emptyRawProps);
unimplementedViewProps->setComponentName(getComponentName());
return unimplementedViewProps;
};
} // namespace react
} // namespace facebook