UNPKG

react-native-inlight

Version:

A framework for building native apps using React

109 lines (92 loc) 2.22 kB
/** * Copyright (c) 2014-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. * * @flow */ export type ReactNode = | React$Element<any> | ReactCall<any> | ReactReturn<any> | ReactPortal | ReactText | ReactFragment | ReactProvider<any> | ReactConsumer<any>; export type ReactFragment = ReactEmpty | Iterable<React$Node>; export type ReactNodeList = ReactEmpty | React$Node; export type ReactText = string | number; export type ReactEmpty = null | void | boolean; export type ReactCall<V> = { $$typeof: Symbol | number, type: Symbol | number, key: null | string, ref: null, props: { props: any, // This should be a more specific CallHandler handler: (props: any, returns: Array<V>) => ReactNodeList, children?: ReactNodeList, }, }; export type ReactReturn<V> = { $$typeof: Symbol | number, type: Symbol | number, key: null, ref: null, props: { value: V, }, }; export type ReactProvider<T> = { $$typeof: Symbol | number, type: ReactProviderType<T>, key: null | string, ref: null, props: { value: T, children?: ReactNodeList, }, }; export type ReactProviderType<T> = { $$typeof: Symbol | number, _context: ReactContext<T>, }; export type ReactConsumer<T> = { $$typeof: Symbol | number, type: ReactContext<T>, key: null | string, ref: null, props: { children: (value: T) => ReactNodeList, unstable_observedBits?: number, }, }; export type ReactContext<T> = { $$typeof: Symbol | number, Consumer: ReactContext<T>, Provider: ReactProviderType<T>, unstable_read: () => T, _calculateChangedBits: ((a: T, b: T) => number) | null, _defaultValue: T, _currentValue: T, _currentValue2: T, _changedBits: number, _changedBits2: number, // DEV only _currentRenderer?: Object | null, _currentRenderer2?: Object | null, }; export type ReactPortal = { $$typeof: Symbol | number, key: null | string, containerInfo: any, children: ReactNodeList, // TODO: figure out the API for cross-renderer implementation. implementation: any, }; export type RefObject = {| current: any, |};