From 8ef539e0c2918ba307e02ec7cb85081987ffb0ca Mon Sep 17 00:00:00 2001 From: Valentin Shergin Date: Fri, 22 Jun 2018 07:28:44 -0700 Subject: [PATCH] Fabric: `fromDynamic`: Parsing vector type when source has no array Summary: @public If some prop has `std::vector` type, it possible that on JS side we want to pass just one element of the array. And in this case we sometimes drop array initialization (`[]`) part, so instead of passing `[{x:1, y:1}]` we pass `{x:1, y:1}`. This diff adds support for that. Reviewed By: mdvacca Differential Revision: D8526572 fbshipit-source-id: 33d4369ac48cac3eb1c534f477d8259e76e0c547 --- ReactCommon/fabric/core/propsConversions.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ReactCommon/fabric/core/propsConversions.h b/ReactCommon/fabric/core/propsConversions.h index f255d6c80..c5efbe3d4 100644 --- a/ReactCommon/fabric/core/propsConversions.h +++ b/ReactCommon/fabric/core/propsConversions.h @@ -26,6 +26,13 @@ inline void fromDynamic(const folly::dynamic &value, std::string &result) { resu template inline void fromDynamic(const folly::dynamic &value, std::vector &result) { + if (!value.isArray()) { + T itemResult; + fromDynamic(value, itemResult); + result = {itemResult}; + return; + } + result.clear(); T itemResult; for (auto &itemValue : value) {