UIManager: Delete removeSubviewsFromContainerWithID (#42066)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/42066

We should just delete this UIManagerModule api:
- There are no usages of this api at Meta
- The only usages found on GitHub are from old forks of React Native: [GitHub search](https://github.com/search?q=removeSubviewsFromContainerWithID+language%3AJavaScript&type=code&p=5)

Changelog: [Android][Removed] - Delete UIManager.removeSubviewsFromContainerWithID

Reviewed By: sammy-SC

Differential Revision: D52345629

fbshipit-source-id: 74bb36600f218e5f882b338ff5d0bcf37d58c949
This commit is contained in:
Ramanpreet Nara
2024-01-10 07:01:22 -08:00
committed by Facebook GitHub Bot
parent 9670bde5ab
commit f4e0061533
8 changed files with 0 additions and 68 deletions
@@ -232,9 +232,6 @@ const UIManagerJS: UIManagerJSInterface & {[string]: any} = {
): void => {
raiseSoftError('configureNextLayoutAnimation');
},
removeSubviewsFromContainerWithID: (containerID: number): void => {
raiseSoftError('removeSubviewsFromContainerWithID');
},
replaceExistingNonRootView: (
reactTag: ?number,
newReactTag: ?number,
@@ -86,7 +86,6 @@ export interface Spec extends TurboModule {
callback: () => void, // check what is returned here
errorCallback: (error: Object) => void,
) => void;
+removeSubviewsFromContainerWithID: (containerID: number) => void;
+replaceExistingNonRootView: (
reactTag: ?number,
newReactTag: ?number,
@@ -41,7 +41,6 @@ module.exports = [
'measureLayout',
'measureLayoutRelativeToParent',
'removeRootView',
'removeSubviewsFromContainerWithID',
'replaceExistingNonRootView',
'sendAccessibilityEvent',
'setChildren',
@@ -700,31 +700,6 @@ static NSDictionary *deviceOrientationEventBody(UIDeviceOrientation orientation)
};
}
/**
* A method to be called from JS, which takes a container ID and then releases
* all subviews for that container upon receipt.
*/
RCT_EXPORT_METHOD(removeSubviewsFromContainerWithID : (nonnull NSNumber *)containerID)
{
RCTLogWarn(
@"RCTUIManager.removeSubviewsFromContainerWithID method is deprecated and it will not be implemented in newer versions of RN (Fabric) - T47686450");
id<RCTComponent> container = _shadowViewRegistry[containerID];
RCTAssert(container != nil, @"container view (for ID %@) not found", containerID);
NSUInteger subviewsCount = [container reactSubviews].count;
NSMutableArray<NSNumber *> *indices = [[NSMutableArray alloc] initWithCapacity:subviewsCount];
for (NSUInteger childIndex = 0; childIndex < subviewsCount; childIndex++) {
[indices addObject:@(childIndex)];
}
[self manageChildren:containerID
moveFromIndices:nil
moveToIndices:nil
addChildReactTags:nil
addAtIndices:nil
removeAtIndices:indices];
}
/**
* Disassociates children from container. Doesn't remove from registries.
* TODO: use [NSArray getObjects:buffer] to reuse same fast buffer each time.
@@ -4861,7 +4861,6 @@ public class com/facebook/react/uimanager/UIImplementation {
public fun removeRootShadowNode (I)V
public fun removeRootView (I)V
protected final fun removeShadowNode (Lcom/facebook/react/uimanager/ReactShadowNode;)V
public fun removeSubviewsFromContainerWithID (I)V
public fun replaceExistingNonRootView (II)V
public fun resolveRootTagFromReactTag (I)I
public final fun resolveShadowNode (I)Lcom/facebook/react/uimanager/ReactShadowNode;
@@ -4949,7 +4948,6 @@ public class com/facebook/react/uimanager/UIManagerModule : com/facebook/react/b
public fun receiveEvent (IILjava/lang/String;Lcom/facebook/react/bridge/WritableMap;)V
public fun receiveEvent (ILjava/lang/String;Lcom/facebook/react/bridge/WritableMap;)V
public fun removeRootView (I)V
public fun removeSubviewsFromContainerWithID (I)V
public fun removeUIManagerEventListener (Lcom/facebook/react/bridge/UIManagerListener;)V
public fun removeUIManagerListener (Lcom/facebook/react/uimanager/UIManagerModuleListener;)V
public fun replaceExistingNonRootView (II)V
@@ -7739,4 +7737,3 @@ public class com/facebook/react/views/view/ViewGroupClickEvent : com/facebook/re
protected fun getEventData ()Lcom/facebook/react/bridge/WritableMap;
public fun getEventName ()Ljava/lang/String;
}
@@ -480,27 +480,6 @@ public class UIImplementation {
manageChildren(parent.getReactTag(), null, null, tagsToAdd, addAtIndices, indicesToRemove);
}
/**
* Method which takes a container tag and then releases all subviews for that container upon
* receipt. TODO: The method name is incorrect and will be renamed, #6033872
*
* @param containerTag the tag of the container for which the subviews must be removed
*/
public void removeSubviewsFromContainerWithID(int containerTag) {
ReactShadowNode containerNode = mShadowNodeRegistry.getNode(containerTag);
if (containerNode == null) {
throw new IllegalViewOperationException(
"Trying to remove subviews of an unknown view tag: " + containerTag);
}
WritableArray indicesToRemove = Arguments.createArray();
for (int childIndex = 0; childIndex < containerNode.getChildCount(); childIndex++) {
indicesToRemove.pushInt(childIndex);
}
manageChildren(containerTag, null, null, null, null, indicesToRemove);
}
/**
* Find the touch target child native view in the supplied root view hierarchy, given a react
* target location.
@@ -499,19 +499,6 @@ public class UIManagerModule extends ReactContextBaseJavaModule
mUIImplementation.replaceExistingNonRootView(oldTag, newTag);
}
/**
* Method which takes a container tag and then releases all subviews for that container upon
* receipt.
*
* @param containerTag the tag of the container for which the subviews must be removed
* @deprecated This method will not be available in Fabric UIManager class.
*/
@ReactMethod
@Deprecated
public void removeSubviewsFromContainerWithID(int containerTag) {
mUIImplementation.removeSubviewsFromContainerWithID(containerTag);
}
/**
* Determines the location on screen, width, and height of the given view and returns the values
* via an async callback.
-1
View File
@@ -93,7 +93,6 @@ jest
}),
measure: jest.fn(),
manageChildren: jest.fn(),
removeSubviewsFromContainerWithID: jest.fn(),
replaceExistingNonRootView: jest.fn(),
setChildren: jest.fn(),
updateView: jest.fn(),