mirror of
https://github.com/status-im/react-native.git
synced 2025-02-23 14:48:25 +00:00
Fabric: A bunch of functions for converting JSI primitives to Fabric and vice-versa
Summary: We need to decouple this from actual JSI/UIManagerBinding implementation to make them more maintainable. Reviewed By: sahrens Differential Revision: D12876742 fbshipit-source-id: 30cad69d0a9761e2aa82f31d180e4b5a40cedb61
This commit is contained in:
parent
6c5b8c603b
commit
b9f9f3284e
@ -58,5 +58,65 @@ struct ShadowNodeListWrapper : public jsi::HostObject {
|
|||||||
SharedShadowNodeUnsharedList shadowNodeList;
|
SharedShadowNodeUnsharedList shadowNodeList;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
inline static SharedShadowNode shadowNodeFromValue(
|
||||||
|
jsi::Runtime &runtime,
|
||||||
|
const jsi::Value &value) {
|
||||||
|
return value.getObject(runtime)
|
||||||
|
.getHostObject<ShadowNodeWrapper>(runtime)
|
||||||
|
->shadowNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline static jsi::Value valueFromShadowNode(
|
||||||
|
jsi::Runtime &runtime,
|
||||||
|
const SharedShadowNode &shadowNode) {
|
||||||
|
return jsi::Object::createFromHostObject(
|
||||||
|
runtime, std::make_shared<ShadowNodeWrapper>(shadowNode));
|
||||||
|
}
|
||||||
|
|
||||||
|
inline static SharedShadowNodeUnsharedList shadowNodeListFromValue(
|
||||||
|
jsi::Runtime &runtime,
|
||||||
|
const jsi::Value &value) {
|
||||||
|
return value.getObject(runtime)
|
||||||
|
.getHostObject<ShadowNodeListWrapper>(runtime)
|
||||||
|
->shadowNodeList;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline static jsi::Value valueFromShadowNodeList(
|
||||||
|
jsi::Runtime &runtime,
|
||||||
|
const SharedShadowNodeUnsharedList &shadowNodeList) {
|
||||||
|
return jsi::Object::createFromHostObject(
|
||||||
|
runtime, std::make_unique<ShadowNodeListWrapper>(shadowNodeList));
|
||||||
|
}
|
||||||
|
|
||||||
|
inline static RawProps rawPropsFromValue(
|
||||||
|
jsi::Runtime &runtime,
|
||||||
|
const jsi::Value &value) {
|
||||||
|
return rawPropsFromDynamic(folly::dynamic{
|
||||||
|
value.isNull() ? nullptr : jsi::dynamicFromValue(runtime, value)});
|
||||||
|
}
|
||||||
|
|
||||||
|
inline static SharedEventTarget eventTargetFromValue(
|
||||||
|
jsi::Runtime &runtime,
|
||||||
|
const jsi::Value &value) {
|
||||||
|
return std::make_shared<EventTargetWrapper>(
|
||||||
|
jsi::WeakObject(runtime, value.getObject(runtime)));
|
||||||
|
}
|
||||||
|
|
||||||
|
inline static Tag tagFromValue(jsi::Runtime &runtime, const jsi::Value &value) {
|
||||||
|
return (Tag)value.getNumber();
|
||||||
|
}
|
||||||
|
|
||||||
|
inline static SurfaceId surfaceIdFromValue(
|
||||||
|
jsi::Runtime &runtime,
|
||||||
|
const jsi::Value &value) {
|
||||||
|
return (SurfaceId)value.getNumber();
|
||||||
|
}
|
||||||
|
|
||||||
|
inline static ComponentName componentNameFromValue(
|
||||||
|
jsi::Runtime &runtime,
|
||||||
|
const jsi::Value &value) {
|
||||||
|
return value.getString(runtime).utf8(runtime);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace react
|
} // namespace react
|
||||||
} // namespace facebook
|
} // namespace facebook
|
||||||
|
Loading…
x
Reference in New Issue
Block a user