react-native/React/Views
alvaromb e52cab5a7f Adds the ability to use UIManager to check if a node is an ancestor
Summary:
Sometimes is handy to check if a React node is a descendant of another node or not. For instance, I want to check if the focused `TextInput` is descendant of an specific `ScrollView`:

```js
const currentlyFocusedField = TextInput.State.currentlyFocusedField()
UIManager.viewIsAncestorOf(
  currentlyFocusedField,
  this.getInnerViewNode(),
  (isAncestor) => {
    if (isAncestor) {
      console.log('The focused field is a descendant of this ScrollView!')
    }
  }
)
```

This function uses the same strategy as the `measureLayout` method to check if one node is an ancestor of other node. As the `measureLayout` method, this is performed outside the main thread.

By now I've only implemented the iOS version and its tests, but if this function is going to be merged I'll implement the Android version too. I have objc experience but no Java or Android, so I prefer to validate this functionality before jumping into developing the Android part.
Closes https://github.com/facebook/react-native/pull/7876

Differential Revision: D3662045

Pulled By: javache

fbshipit-source-id: b9668e8ea94fd01db76651f16243926cf9c2566f
2016-08-03 04:13:43 -07:00
..
RCTActivityIndicatorView.h Fixes ActivityIndicatorIOS doesn't hide initially 2016-06-27 17:13:27 -07:00
RCTActivityIndicatorView.m Fixes ActivityIndicatorIOS doesn't hide initially 2016-06-27 17:13:27 -07:00
RCTActivityIndicatorViewManager.h Improved RCTActivityIndicatorView and fixed some flow errors 2015-04-26 02:17:13 -08:00
RCTActivityIndicatorViewManager.m Fixes ActivityIndicatorIOS doesn't hide initially 2016-06-27 17:13:27 -07:00
RCTAnimationType.h [LayoutAnimation] RCTAnimationTypeKeyboard 2015-06-25 09:17:01 -08:00
RCTAutoInsetsProtocol.h Automatically adjust content inset after view controller did layout subviews 2015-09-04 07:00:21 -08:00
RCTBorderDrawing.h Support dashed and dotted border styles on iOS 2015-12-23 10:07:28 -08:00
RCTBorderDrawing.m Fixed border smearing issue 2016-01-07 12:03:17 -08:00
RCTBorderStyle.h Add property mapping for `borderStyle` from JS to `RCTView` (iOS) 2015-12-01 09:00:28 -08:00
RCTComponent.h Refactored subview management 2016-06-07 00:14:39 -07:00
RCTComponentData.h Removed eager init of all ViewManagers on layout 2016-02-26 08:18:34 -08:00
RCTComponentData.m Automated changes to remove implicit capture of self in blocks: Libraries/FBReactKit/BUCK 2016-07-07 12:44:14 -07:00
RCTConvert+CoreLocation.h [MapView] Support for annotation callouts, annotation press, callout presses and pin animation 2015-06-25 09:15:21 -08:00
RCTConvert+CoreLocation.m [MapView] Support for annotation callouts, annotation press, callout presses and pin animation 2015-06-25 09:15:21 -08:00
RCTConvert+MapKit.h Added ability to use a custom view for MapView annotations 2015-12-17 06:46:33 -08:00
RCTConvert+MapKit.m Implement draggable annotations on MapView. Closes #2512 2016-01-04 06:38:30 -08:00
RCTDatePicker.h Added mechanism for directly mapping JS event handlers to blocks 2015-09-02 06:11:24 -08:00
RCTDatePicker.m Added mechanism for directly mapping JS event handlers to blocks 2015-09-02 06:11:24 -08:00
RCTDatePickerManager.h Removed deprecated RCT_EXPORT + code paths 2015-06-05 09:58:25 -08:00
RCTDatePickerManager.m Removed exported constants for fixed-size views 2016-04-26 04:21:39 -07:00
RCTMap.h Add MapView annotation callback when it gets / lost the focus 2016-01-29 06:26:30 -08:00
RCTMap.m Automated changes to remove implicit capture of self in blocks: Libraries/FBReactKit/BUCK 2016-07-07 12:44:14 -07:00
RCTMapAnnotation.h Cleanup warnings 2016-07-12 05:59:12 -07:00
RCTMapAnnotation.m Add Polyline support to MapView 2015-11-26 08:54:16 -08:00
RCTMapManager.h [ReactNative] s/ReactKit/React/g 2015-03-26 02:42:24 -08:00
RCTMapManager.m Fixed array bounds error in MapView 2016-04-22 10:59:29 -07:00
RCTMapOverlay.h Add Polyline support to MapView 2015-11-26 08:54:16 -08:00
RCTMapOverlay.m Add Polyline support to MapView 2015-11-26 08:54:16 -08:00
RCTModalHostView.h Modal Animation Types 2016-04-28 16:00:32 -07:00
RCTModalHostView.m Automated changes to remove implicit capture of self in blocks: Libraries/FBReactKit/BUCK 2016-07-07 12:44:14 -07:00
RCTModalHostViewController.h Add <Modal /> component 2015-07-28 07:21:50 -08:00
RCTModalHostViewController.m Support multiple interface orientations in RCTDevLoadingView 2016-02-25 09:52:30 -08:00
RCTModalHostViewManager.h Enable transparent modal presentation with <Modal /> 2015-08-14 04:47:12 -08:00
RCTModalHostViewManager.m Modal Animation Types 2016-04-28 16:00:32 -07:00
RCTNavItem.h Added the ability to set an image title in the NavigatorIOS 2016-06-23 08:28:30 -07:00
RCTNavItem.m Added the ability to set an image title in the NavigatorIOS 2016-06-23 08:28:30 -07:00
RCTNavItemManager.h [ReactNative] s/ReactKit/React/g 2015-03-26 02:42:24 -08:00
RCTNavItemManager.m Added the ability to set an image title in the NavigatorIOS 2016-06-23 08:28:30 -07:00
RCTNavigator.h NavigatorIOS: Expose interactivePopGestureEnabled property 2016-05-06 03:18:20 -07:00
RCTNavigator.m Cleanup warnings 2016-07-12 05:59:12 -07:00
RCTNavigatorManager.h [ReactNative] s/ReactKit/React/g 2015-03-26 02:42:24 -08:00
RCTNavigatorManager.m NavigatorIOS: Expose interactivePopGestureEnabled property 2016-05-06 03:18:20 -07:00
RCTPicker.h Added support for styling the PickerIOS 2015-12-08 07:48:26 -08:00
RCTPicker.m Added support for styling the PickerIOS 2015-12-08 07:48:26 -08:00
RCTPickerManager.h [ReactNative] s/ReactKit/React/g 2015-03-26 02:42:24 -08:00
RCTPickerManager.m Removed exported constants for fixed-size views 2016-04-26 04:21:39 -07:00
RCTPointerEvents.h [ReactNative] s/ReactKit/React/g 2015-03-26 02:42:24 -08:00
RCTProgressViewManager.h Added ProgressViewIOS 2015-06-03 09:49:35 -08:00
RCTProgressViewManager.m Removed exported constants for fixed-size views 2016-04-26 04:21:39 -07:00
RCTRefreshControl.h Cross platform PullToRefreshView component 2016-01-04 08:00:29 -08:00
RCTRefreshControl.m RefreshControl on initial render will not beginRefresh when refreshing state is false 2016-05-13 14:43:26 -07:00
RCTRefreshControlManager.h Cross platform PullToRefreshView component 2016-01-04 08:00:29 -08:00
RCTRefreshControlManager.m Allow to set refresh control title color 2016-04-16 15:15:25 -07:00
RCTRootShadowView.h Extracted rootview-specific shadowview logic into new class 2016-03-21 03:21:27 -07:00
RCTRootShadowView.m Revamp API 2016-07-20 08:58:59 -07:00
RCTScrollView.h Remove deprecated PullToRefreshViewAndroid and onRefreshStart / endRefreshing 2016-05-24 03:28:25 -07:00
RCTScrollView.m Short-circuit setContentInset in RCTScrollView 2016-07-18 11:58:27 -07:00
RCTScrollViewManager.h Remove scrollview support from UIManager, remove mainScrollView(delegate) 2015-11-25 04:12:34 -08:00
RCTScrollViewManager.m Remove deprecated PullToRefreshViewAndroid and onRefreshStart / endRefreshing 2016-05-24 03:28:25 -07:00
RCTScrollableProtocol.h Remove deprecated nativeScrollDelegate property 2016-07-11 13:34:02 -07:00
RCTSegmentedControl.h Added lightweight generic annotations 2015-11-03 14:49:30 -08:00
RCTSegmentedControl.m Added lightweight generic annotations 2015-11-03 14:49:30 -08:00
RCTSegmentedControlManager.h Add SegmentedControlIOS 2015-04-29 08:08:45 -08:00
RCTSegmentedControlManager.m Removed exported constants for fixed-size views 2016-04-26 04:21:39 -07:00
RCTShadowView.h Adds the ability to use UIManager to check if a node is an ancestor 2016-08-03 04:13:43 -07:00
RCTShadowView.m Adds the ability to use UIManager to check if a node is an ancestor 2016-08-03 04:13:43 -07:00
RCTSlider.h Add option for both min/max track image. 2015-12-21 10:30:39 -08:00
RCTSlider.m Add option for both min/max track image. 2015-12-21 10:30:39 -08:00
RCTSliderManager.h [ReactNative] s/ReactKit/React/g 2015-03-26 02:42:24 -08:00
RCTSliderManager.m Add option for both min/max track image. 2015-12-21 10:30:39 -08:00
RCTSwitch.h Added mechanism for directly mapping JS event handlers to blocks 2015-09-02 06:11:24 -08:00
RCTSwitch.m [ReactNative] s/ReactKit/React/g 2015-03-26 02:42:24 -08:00
RCTSwitchManager.h [ReactNative] s/ReactKit/React/g 2015-03-26 02:42:24 -08:00
RCTSwitchManager.m Added mechanism for directly mapping JS event handlers to blocks 2015-09-02 06:11:24 -08:00
RCTTabBar.h Enable setting color of text and images on unselected tabs 2016-05-03 05:40:29 -07:00
RCTTabBar.m Automated changes to remove implicit capture of self in blocks: Libraries/FBReactKit/BUCK 2016-07-07 12:44:14 -07:00
RCTTabBarItem.h Add renderAsOriginal to selectedIcon 2016-05-24 01:58:23 -07:00
RCTTabBarItem.m Add renderAsOriginal to selectedIcon 2016-05-24 01:58:23 -07:00
RCTTabBarItemManager.h [ReactNative] s/ReactKit/React/g 2015-03-26 02:42:24 -08:00
RCTTabBarItemManager.m Add renderAsOriginal to selectedIcon 2016-05-24 01:58:23 -07:00
RCTTabBarManager.h [ReactNative] s/ReactKit/React/g 2015-03-26 02:42:24 -08:00
RCTTabBarManager.m TabBarIOS itemPositioning - Fixes #4136 2016-05-20 17:28:50 -07:00
RCTTextDecorationLineType.h <Text> module add textDecoration style attributes 2015-07-07 06:15:20 -08:00
RCTView.h Converted zIndex to integers 2016-06-09 09:58:31 -07:00
RCTView.m Implement CSS z-index for iOS 2016-06-07 07:43:49 -07:00
RCTViewControllerProtocol.h [ReactNative] s/ReactKit/React/g 2015-03-26 02:42:24 -08:00
RCTViewManager.h Fix multi-character TextInput 2016-06-23 03:58:33 -07:00
RCTViewManager.m CamelCase 2016-07-20 06:43:32 -07:00
RCTWebView.h Implemented stopLoading 2016-04-22 08:15:25 -07:00
RCTWebView.m Implemented stopLoading 2016-04-22 08:15:25 -07:00
RCTWebViewManager.h [ReactNative] s/ReactKit/React/g 2015-03-26 02:42:24 -08:00
RCTWebViewManager.m Add WebView.dataDetectorTypes prop. 2016-07-13 14:43:25 -07:00
RCTWrapperViewController.h Added mechanism for directly mapping JS event handlers to blocks 2015-09-02 06:11:24 -08:00
RCTWrapperViewController.m Added the ability to set an image title in the NavigatorIOS 2016-06-23 08:28:30 -07:00
UIView+Private.h Implement CSS z-index for iOS 2016-06-07 07:43:49 -07:00
UIView+React.h Cleanup warnings 2016-07-12 05:59:12 -07:00
UIView+React.m Converted zIndex to integers 2016-06-09 09:58:31 -07:00