From fa0ac92b2c9cfc302314ff18325a96354bb1f432 Mon Sep 17 00:00:00 2001 From: Kevin Gozali Date: Thu, 8 Feb 2018 19:25:40 -0800 Subject: [PATCH] call into native FabricUIManager from JS Reviewed By: mdvacca Differential Revision: D6945104 fbshipit-source-id: ac66c6105c0d18bef003cdd08d06dbb49c61e669 --- Libraries/ReactNative/FabricUIManager.js | 52 +++++++++++++++++++++++- Libraries/Renderer/ReactFabric-dev.js | 2 +- 2 files changed, 51 insertions(+), 3 deletions(-) diff --git a/Libraries/ReactNative/FabricUIManager.js b/Libraries/ReactNative/FabricUIManager.js index e5989b330..df6ea4f0c 100644 --- a/Libraries/ReactNative/FabricUIManager.js +++ b/Libraries/ReactNative/FabricUIManager.js @@ -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; diff --git a/Libraries/Renderer/ReactFabric-dev.js b/Libraries/Renderer/ReactFabric-dev.js index f504078fa..68d381f6a 100644 --- a/Libraries/Renderer/ReactFabric-dev.js +++ b/Libraries/Renderer/ReactFabric-dev.js @@ -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;