/* * 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 #include #include #include #include #include #include #include using namespace facebook::react; /** * This defines a set of TestComponent classes: Props, ShadowNode, * ComponentDescriptor. To be used for testing purpose. */ class TestState { public: int number; }; static const char TestComponentName[] = "Test"; class TestProps : public ViewProps { public: TestProps() = default; TestProps(const TestProps &sourceProps, const RawProps &rawProps) : ViewProps(sourceProps, rawProps) {} }; using SharedTestProps = std::shared_ptr; class TestShadowNode; using SharedTestShadowNode = std::shared_ptr; class TestShadowNode : public ConcreteViewShadowNode< TestComponentName, TestProps, ViewEventEmitter, TestState> { public: using ConcreteViewShadowNode::ConcreteViewShadowNode; Transform _transform{Transform::Identity()}; Transform getTransform() const override { return _transform; } facebook::react::Point _contentOriginOffset{}; facebook::react::Point getContentOriginOffset() const override { return _contentOriginOffset; } }; class TestComponentDescriptor : public ConcreteComponentDescriptor { public: using ConcreteComponentDescriptor::ConcreteComponentDescriptor; };