diff --git a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm index 941863c5a9f..04bc36f10f6 100644 --- a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +++ b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm @@ -1473,6 +1473,10 @@ namespace facebook { return static_cast(turboModule).invokeObjCMethod(rt, VoidKind, "measureInWindow", @selector(measureInWindow:callback:), args, count); } + static facebook::jsi::Value __hostFunction_NativeUIManagerSpecJSI_viewIsDescendantOf(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + return static_cast(turboModule).invokeObjCMethod(rt, VoidKind, "viewIsDescendantOf", @selector(viewIsDescendantOf:ancestorReactTag:callback:), args, count); + } + static facebook::jsi::Value __hostFunction_NativeUIManagerSpecJSI_measureLayout(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { return static_cast(turboModule).invokeObjCMethod(rt, VoidKind, "measureLayout", @selector(measureLayout:ancestorReactTag:errorCallback:callback:), args, count); } @@ -1569,6 +1573,9 @@ namespace facebook { methodMap_["measureInWindow"] = MethodMetadata {2, __hostFunction_NativeUIManagerSpecJSI_measureInWindow}; + methodMap_["viewIsDescendantOf"] = MethodMetadata {3, __hostFunction_NativeUIManagerSpecJSI_viewIsDescendantOf}; + + methodMap_["measureLayout"] = MethodMetadata {4, __hostFunction_NativeUIManagerSpecJSI_measureLayout}; diff --git a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h index 1f2be13b673..c9ee996106a 100644 --- a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +++ b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h @@ -1641,6 +1641,9 @@ namespace JS { callback:(RCTResponseSenderBlock)callback; - (void)measureInWindow:(NSNumber *)reactTag callback:(RCTResponseSenderBlock)callback; +- (void)viewIsDescendantOf:(NSNumber *)reactTag + ancestorReactTag:(NSNumber *)ancestorReactTag + callback:(RCTResponseSenderBlock)callback; - (void)measureLayout:(NSNumber *)reactTag ancestorReactTag:(NSNumber *)ancestorReactTag errorCallback:(RCTResponseSenderBlock)errorCallback diff --git a/Libraries/ReactNative/DummyUIManager.js b/Libraries/ReactNative/DummyUIManager.js index 578ad2bf28e..38f93adc54a 100644 --- a/Libraries/ReactNative/DummyUIManager.js +++ b/Libraries/ReactNative/DummyUIManager.js @@ -61,6 +61,11 @@ module.exports = { reactTag: ?number, callback: (x: number, y: number, width: number, height: number) => void, ) => {}, + viewIsDescendantOf: ( + reactTag: ?number, + ancestorReactTag: ?number, + callback: (result: Array) => void, + ) => {}, measureLayout: ( reactTag: ?number, ancestorReactTag: ?number, diff --git a/Libraries/ReactNative/NativeUIManager.js b/Libraries/ReactNative/NativeUIManager.js index c08c1e043bf..ccfcd492818 100644 --- a/Libraries/ReactNative/NativeUIManager.js +++ b/Libraries/ReactNative/NativeUIManager.js @@ -59,6 +59,11 @@ export interface Spec extends TurboModule { reactTag: ?number, callback: (x: number, y: number, width: number, height: number) => void, ) => void; + +viewIsDescendantOf: ( + reactTag: ?number, + ancestorReactTag: ?number, + callback: (result: Array) => void, + ) => void; +measureLayout: ( reactTag: ?number, ancestorReactTag: ?number, diff --git a/Libraries/ReactNative/UIManagerProperties.js b/Libraries/ReactNative/UIManagerProperties.js index f8e08ec3d64..548a6ecadb6 100644 --- a/Libraries/ReactNative/UIManagerProperties.js +++ b/Libraries/ReactNative/UIManagerProperties.js @@ -49,6 +49,7 @@ module.exports = [ 'setLayoutAnimationEnabledExperimental', 'showPopupMenu', 'updateView', + 'viewIsDescendantOf', 'PopupMenu', 'LazyViewManagersEnabled', 'ViewManagerNames',