Skip to content

Commit

Permalink
call into native FabricUIManager from JS
Browse files Browse the repository at this point in the history
Reviewed By: mdvacca

Differential Revision: D6945104

fbshipit-source-id: ac66c6105c0d18bef003cdd08d06dbb49c61e669
  • Loading branch information
fkgozali authored and facebook-github-bot committed Feb 9, 2018
1 parent 2d35bde commit fa0ac92
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 3 deletions.
52 changes: 50 additions & 2 deletions Libraries/ReactNative/FabricUIManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
2 changes: 1 addition & 1 deletion Libraries/Renderer/ReactFabric-dev.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down

0 comments on commit fa0ac92

Please sign in to comment.