63 lines
1.8 KiB
JavaScript
63 lines
1.8 KiB
JavaScript
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @providesModule FabricUIManager
|
|
* @flow
|
|
* @format
|
|
*/
|
|
'use strict';
|
|
|
|
// 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;
|