Fabric: Exposing `findShadowNodeByTag_DEPRECATED` to JavaScript

Summary: This allows to implement `findNodeHandle` in Fabric world (temporary).

Reviewed By: zackargyle, JoshuaGross, mdvacca

Differential Revision: D17175953

fbshipit-source-id: c88bd1c58608450812799d4ecb4a6bf2c027c5f3
This commit is contained in:
Valentin Shergin 2019-09-04 23:14:49 -07:00 коммит произвёл Facebook Github Bot
Родитель 79ef5f9b0f
Коммит 10fe41cc8c
2 изменённых файлов: 22 добавлений и 0 удалений

Просмотреть файл

@ -48,6 +48,7 @@ type Spec = {|
onFail: () => void,
onSuccess: MeasureLayoutOnSuccessCallback,
) => void,
+findShadowNodeByTag_DEPRECATED: (reactTag: number) => ?Node,
|};
const FabricUIManager: ?Spec = global.nativeFabricUIManager;

Просмотреть файл

@ -525,6 +525,27 @@ jsi::Value UIManagerBinding::get(
});
}
if (methodName == "findShadowNodeByTag_DEPRECATED") {
return jsi::Function::createFromHostFunction(
runtime,
name,
1,
[uiManager](
jsi::Runtime &runtime,
jsi::Value const &thisValue,
jsi::Value const *arguments,
size_t count) -> jsi::Value {
auto shadowNode = uiManager->findShadowNodeByTag_DEPRECATED(
tagFromValue(runtime, arguments[0]));
if (!shadowNode) {
return jsi::Value::null();
}
return valueFromShadowNode(runtime, shadowNode);
});
}
return jsi::Value::undefined();
}