diff --git a/ReactCommon/fabric/graphics/graphicValuesConversions.cpp b/ReactCommon/fabric/graphics/graphicValuesConversions.cpp index 8a09a460f..85909b3a0 100644 --- a/ReactCommon/fabric/graphics/graphicValuesConversions.cpp +++ b/ReactCommon/fabric/graphics/graphicValuesConversions.cpp @@ -69,5 +69,23 @@ std::string stringFromEdgeInsets(const EdgeInsets &edgeInsets) { folly::to(edgeInsets.bottom) + "}"; } +Float floatFromDynamic(const folly::dynamic &value) { + return value.asDouble(); +} + +Point pointFromDynamic(const folly::dynamic &value) { + if (value.isArray()) { + return Point {(Float)value[0].asDouble(), (Float)value[1].asDouble()}; + } + abort(); +} + +Size sizeFromDynamic(const folly::dynamic &value) { + if (value.isArray()) { + return Size {(Float)value[0].asDouble(), (Float)value[1].asDouble()}; + } + abort(); +} + } // namespace react } // namespace facebook diff --git a/ReactCommon/fabric/graphics/graphicValuesConversions.h b/ReactCommon/fabric/graphics/graphicValuesConversions.h index 99774a41f..7d49cdf97 100644 --- a/ReactCommon/fabric/graphics/graphicValuesConversions.h +++ b/ReactCommon/fabric/graphics/graphicValuesConversions.h @@ -26,5 +26,9 @@ std::string stringFromSize(const Size &size); std::string stringFromRect(const Rect &rect); std::string stringFromEdgeInsets(const EdgeInsets &edgeInsets); +Float floatFromDynamic(const folly::dynamic &value); +Point pointFromDynamic(const folly::dynamic &value); +Size sizeFromDynamic(const folly::dynamic &value); + } // namespace react } // namespace facebook