react/scripts/flow/react-native-host-hooks.js
Eli White 12e5a13cf2
[React Native] Inline calls to FabricUIManager in shared code (#15490)
* [React Native] Inline calls to FabricUIManager in shared code

* Call global.nativeFabricUIManager directly as short term fix

* Add flow types

* Add nativeFabricUIManager global to eslint config

* Adding eslint global to bundle validation script
2019-04-29 14:31:16 -07:00

191 lines
5.4 KiB
JavaScript

/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
*/
/* eslint-disable */
import type {
MeasureOnSuccessCallback,
MeasureInWindowOnSuccessCallback,
MeasureLayoutOnSuccessCallback,
ReactNativeBaseComponentViewConfig,
ViewConfigGetter,
} from 'react-native-renderer/src/ReactNativeTypes';
import type {RNTopLevelEventType} from 'events/TopLevelEventTypes';
declare module 'deepDiffer' {
declare module.exports: (one: any, two: any) => boolean;
}
declare module 'deepFreezeAndThrowOnMutationInDev' {
declare module.exports: <T>(obj: T) => T;
}
declare module 'flattenStyle' {
}
declare module 'InitializeCore' {
}
declare module 'RCTEventEmitter' {
declare function register(mixed): void;
}
declare module 'TextInputState' {
declare function blurTextInput(object: any): void;
declare function focusTextInput(object: any): void;
}
declare module 'ExceptionsManager' {
declare function handleException(error: Error, isFatal: boolean): void;
}
declare module 'Platform' {
declare var OS: string;
}
declare module 'UIManager' {
declare var customBubblingEventTypes: Object;
declare var customDirectEventTypes: Object;
declare function createView(
reactTag: number,
viewName: string,
rootTag: number,
props: ?Object,
): void;
declare function manageChildren(
containerTag: number,
moveFromIndices: Array<number>,
moveToIndices: Array<number>,
addChildReactTags: Array<number>,
addAtIndices: Array<number>,
removeAtIndices: Array<number>,
): void;
declare function measure(hostComponent: mixed, callback: Function): void;
declare function measureInWindow(
nativeTag: ?number,
callback: Function,
): void;
declare function measureLayout(
nativeTag: mixed,
nativeNode: number,
onFail: Function,
onSuccess: Function,
): void;
declare function removeRootView(containerTag: number): void;
declare function removeSubviewsFromContainerWithID(containerId: number): void;
declare function replaceExistingNonRootView(): void;
declare function setChildren(
containerTag: number,
reactTags: Array<number>,
): void;
declare function updateView(
reactTag: number,
viewName: string,
props: ?Object,
): void;
declare function __takeSnapshot(
view?: 'window' | Element<any> | number,
options?: {
width?: number,
height?: number,
format?: 'png' | 'jpeg',
quality?: number,
},
): Promise<any>;
declare function setJSResponder(
reactTag: number,
blockNativeResponder: boolean,
): void;
declare function clearJSResponder(): void;
}
declare module 'FabricUIManager' {
declare function createNode(
reactTag: number,
viewName: string,
rootTag: number,
props: ?Object,
eventTarget: Object,
): Object;
declare function cloneNode(node: Object): Object;
declare function cloneNodeWithNewChildren(node: Object): Object;
declare function cloneNodeWithNewProps(
node: Object,
newProps: ?Object,
): Object;
declare function cloneNodeWithNewChildrenAndProps(
node: Object,
newProps: ?Object,
): Object;
declare function appendChild(node: Object, childNode: Object): void;
declare function createChildSet(rootTag: number): Object;
declare function appendChildToSet(childSet: Object, childNode: Object): void;
declare function completeRoot(rootTag: number, childSet: Object): void;
declare function registerEventHandler(
callback: (
eventTarget: null | Object,
type: RNTopLevelEventType,
payload: Object,
) => void,
): void;
declare function measure(
node: Node,
callback: MeasureOnSuccessCallback,
): void;
declare function measureInWindow(
node: Node,
callback: MeasureInWindowOnSuccessCallback,
): void;
declare function measureLayout(
node: Node,
relativeNode: Node,
onFail: () => void,
onSuccess: MeasureLayoutOnSuccessCallback,
): void;
}
// This is needed for a short term solution.
// See https://github.com/facebook/react/pull/15490 for more info
declare var nativeFabricUIManager: {
measure(node: Node, callback: MeasureOnSuccessCallback): void,
measureInWindow(node: Node, callback: MeasureInWindowOnSuccessCallback): void,
};
declare module 'View' {
declare module.exports: typeof React$Component;
}
declare module 'RTManager' {
declare function createNode(
tag: number,
classType: string,
props: ?Object,
): void;
declare function beginUpdates(): void;
declare function appendChildToContext(
contextTag: number,
childTag: number,
): void;
declare function appendChild(parentTag: number, childTag: number): void;
declare function prependChild(childTag: number, beforeTag: number): void;
declare function deleteChild(childTag: number): void;
declare function updateNode(tag: number, props: ?Object): void;
declare function completeUpdates(): void;
}
declare module 'BatchedBridge' {
declare function registerCallableModule(name: string, module: Object): void;
}
declare module 'ReactNativeViewConfigRegistry' {
declare var customBubblingEventTypes: Object;
declare var customDirectEventTypes: Object;
declare var eventTypes: Object;
declare function register(name: string, callback: ViewConfigGetter): string;
declare function get(name: string): ReactNativeBaseComponentViewConfig;
}