call into native FabricUIManager from JS

Reviewed By: mdvacca

Differential Revision: D6945104

fbshipit-source-id: ac66c6105c0d18bef003cdd08d06dbb49c61e669
This commit is contained in:
Kevin Gozali 2018-02-08 19:25:40 -08:00 committed by Facebook Github Bot
parent 2d35bde101
commit fa0ac92b2c
2 changed files with 51 additions and 3 deletions

View File

@ -12,5 +12,53 @@
*/
'use strict';
// TODO @sema Fix me
module.exports = {};
// TODO: fix the types
type Node = number;
type NodeSet = number;
type NodeProps = {};
type Spec = {|
+createNode: (
reactTag: number,
viewName: string,
rootTag: number,
props: NodeProps,
instanceHandle: number,
) => Node,
+cloneNode: (node: Node) => Node,
+cloneNodeWithNewChildren: (node: Node) => Node,
+cloneNodeWithNewProps: (node: Node, newProps: NodeProps) => Node,
+cloneNodeWithNewChildrenAndProps: (node: Node, newProps: NodeProps) => Node,
+appendChild: (parentNode: Node, child: Node) => Node,
+appendChildToSet: (childSet: NodeSet, child: Node) => void,
+completeRoot: (rootTag: number, childSet: NodeSet) => void,
|};
const NativeFabricUIManager: Spec = require('NativeModules').FabricUIManager;
const FabricUIManager: Spec = {
createNode(
reactTag: number,
viewName: string,
rootTag: number,
props: NodeProps,
instanceHandle: number,
): number {
return NativeFabricUIManager.createNode(
reactTag,
viewName,
rootTag,
props,
0, // TODO: instanceHandle is cannot be JSON serialized.
);
},
cloneNode: NativeFabricUIManager.cloneNode,
cloneNodeWithNewChildren: NativeFabricUIManager.cloneNodeWithNewChildren,
cloneNodeWithNewProps: NativeFabricUIManager.cloneNodeWithNewProps,
cloneNodeWithNewChildrenAndProps:
NativeFabricUIManager.cloneNodeWithNewChildrenAndProps,
appendChild: NativeFabricUIManager.appendChild,
appendChildToSet: NativeFabricUIManager.appendChildToSet,
completeRoot: NativeFabricUIManager.completeRoot,
};
module.exports = FabricUIManager;

View File

@ -4718,7 +4718,7 @@ var enableMutatingReconciler = true;
// Experimental noop mode (currently unused):
var enableNoopReconciler = false;
// Experimental persistent mode (Fabric):
var enablePersistentReconciler = false;
var enablePersistentReconciler = true;
// Helps identify side effects in begin-phase lifecycle hooks and setState reducers:
var debugRenderPhaseSideEffects = false;