Files
react-native/ReactCommon/react/renderer/core/LayoutMetrics.cpp
T
Joshua Gross 88c3090066 Correct LayoutMetrics comparison and make debuggable
Summary:
Allow conversion of LayoutMetrics to DebuggableString.

We also skipped a field in comparison. It probably isn't impactful in terms of production issues, but still wasn't correct.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D27709451

fbshipit-source-id: 987fc2de0a4562a295d6cbeffdd922cbf056b811
2021-04-14 09:41:41 -07:00

66 lines
2.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.
*/
#include <react/renderer/debug/DebugStringConvertible.h>
#include <react/renderer/debug/flags.h>
#include "LayoutMetrics.h"
namespace facebook {
namespace react {
#if RN_DEBUG_STRING_CONVERTIBLE
std::string getDebugName(LayoutMetrics const &object) {
return "LayoutMetrics";
}
std::vector<DebugStringConvertibleObject> getDebugProps(
LayoutMetrics const &object,
DebugStringConvertibleOptions options) {
return {
{"frame",
"{x:" + getDebugDescription(object.frame.origin.x, {}) +
",y:" + getDebugDescription(object.frame.origin.y, {}) +
",width:" + getDebugDescription(object.frame.size.width, {}) +
",height:" + getDebugDescription(object.frame.size.height, {}) +
"}"},
{"contentInsets",
"{top:" + getDebugDescription(object.contentInsets.top, {}) +
",right:" + getDebugDescription(object.contentInsets.right, {}) +
",bottom:" + getDebugDescription(object.contentInsets.bottom, {}) +
",left:" + getDebugDescription(object.contentInsets.left, {}) + "}"},
{"borderWidth",
"{top:" + getDebugDescription(object.borderWidth.top, {}) +
",right:" + getDebugDescription(object.borderWidth.right, {}) +
",bottom:" + getDebugDescription(object.borderWidth.bottom, {}) +
",left:" + getDebugDescription(object.borderWidth.left, {}) + "}"},
{"overflowInset",
"{top:" + getDebugDescription(object.overflowInset.top, {}) +
",right:" + getDebugDescription(object.overflowInset.right, {}) +
",bottom:" + getDebugDescription(object.overflowInset.bottom, {}) +
",left:" + getDebugDescription(object.overflowInset.left, {}) + "}"},
{"displayType",
object.displayType == DisplayType::None
? "None"
: (object.displayType == DisplayType::Flex ? "Flex" : "Inline")},
{"layoutDirection",
object.layoutDirection == LayoutDirection::Undefined
? "Undefined"
: (object.layoutDirection == LayoutDirection::LeftToRight
? "LeftToRight"
: "RightToLeft")},
{"pointScaleFactor",
getDebugDescription(object.pointScaleFactor, options)},
};
}
#endif
} // namespace react
} // namespace facebook