David Vacca 95afdd8bb3 Introducing "collapsable" prop as part of ViewProps
Summary: This diff introduces the collapsable props in the viewProps. This prop is used in product code to prevent specific Views to be removed from the view hierarchy

Reviewed By: shergin

Differential Revision: D10254679

fbshipit-source-id: 637665b8998a86e29e839eb6d405a0fac354c8d3
2018-10-09 16:47:27 -07:00

76 lines
1.8 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 <fabric/components/view/AccessibilityProps.h>
#include <fabric/components/view/YogaStylableProps.h>
#include <fabric/components/view/primitives.h>
#include <fabric/core/Props.h>
#include <fabric/graphics/Color.h>
#include <fabric/graphics/Geometry.h>
namespace facebook {
namespace react {
class ViewProps;
using SharedViewProps = std::shared_ptr<const ViewProps>;
class ViewProps : public Props,
public YogaStylableProps,
public AccessibilityProps {
public:
ViewProps() = default;
ViewProps(const YGStyle &yogaStyle);
ViewProps(const ViewProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
// Color
const Float opacity{1.0};
const SharedColor foregroundColor{};
const SharedColor backgroundColor{};
// Borders
const CascadedBorderRadii borderRadii{};
const CascadedBorderColors borderColors{};
const CascadedBorderStyles borderStyles{};
// Shadow
const SharedColor shadowColor{};
const Size shadowOffset{};
const Float shadowOpacity{};
const Float shadowRadius{};
// Transform
const Transform transform{};
const bool backfaceVisibility{};
const bool shouldRasterize{};
const int zIndex{};
// Events
const PointerEventsMode pointerEvents{};
const EdgeInsets hitSlop{};
const bool onLayout{};
const bool collapsable{true};
#pragma mark - Convenience Methods
BorderMetrics resolveBorderMetrics(bool isRTL) const;
#pragma mark - DebugStringConvertible
#if RN_DEBUG_STRING_CONVERTIBLE
SharedDebugStringConvertibleList getDebugProps() const override;
#endif
};
} // namespace react
} // namespace facebook