diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 8afeee79e05f9f..939be9604a91fa 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -2586,9 +2586,9 @@ public final class com/facebook/react/fabric/EmptyReactNativeConfig : com/facebo public fun getString (Ljava/lang/String;)Ljava/lang/String; } -public class com/facebook/react/fabric/FabricComponents { - public fun ()V - public static fun getFabricComponentName (Ljava/lang/String;)Ljava/lang/String; +public final class com/facebook/react/fabric/FabricComponents { + public static final field INSTANCE Lcom/facebook/react/fabric/FabricComponents; + public static final fun getFabricComponentName (Ljava/lang/String;)Ljava/lang/String; } public final class com/facebook/react/fabric/FabricSoLoader { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.java deleted file mode 100644 index eb31df5bdd1c05..00000000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -package com.facebook.react.fabric; - -import androidx.annotation.NonNull; -import com.facebook.infer.annotation.Nullsafe; -import java.util.HashMap; -import java.util.Map; - -/** - * Utility class for Fabric components, this will be removed - * - *

TODO T97384889: remove this class when the component names are unified between JS - Android - - * iOS - C++ - */ -@Nullsafe(Nullsafe.Mode.LOCAL) -public class FabricComponents { - - private static @NonNull final Map sComponentNames = new HashMap<>(); - - static { - // TODO T97384889: unify component names between JS - Android - iOS - C++ - sComponentNames.put("View", "RCTView"); - sComponentNames.put("Image", "RCTImageView"); - sComponentNames.put("ScrollView", "RCTScrollView"); - sComponentNames.put("Slider", "RCTSlider"); - sComponentNames.put("ModalHostView", "RCTModalHostView"); - sComponentNames.put("Paragraph", "RCTText"); - sComponentNames.put("Text", "RCText"); - sComponentNames.put("RawText", "RCTRawText"); - sComponentNames.put("ActivityIndicatorView", "AndroidProgressBar"); - sComponentNames.put("ShimmeringView", "RKShimmeringView"); - sComponentNames.put("TemplateView", "RCTTemplateView"); - sComponentNames.put("AxialGradientView", "RCTAxialGradientView"); - sComponentNames.put("Video", "RCTVideo"); - sComponentNames.put("Map", "RCTMap"); - sComponentNames.put("WebView", "RCTWebView"); - sComponentNames.put("Keyframes", "RCTKeyframes"); - sComponentNames.put("ImpressionTrackingView", "RCTImpressionTrackingView"); - } - - /** - * @return the name of component in the Fabric environment - */ - public static String getFabricComponentName(String componentName) { - String component = sComponentNames.get(componentName); - return component != null ? component : componentName; - } -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.kt new file mode 100644 index 00000000000000..0ef05b59791500 --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.kt @@ -0,0 +1,44 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +package com.facebook.react.fabric + +/** + * Utility class for Fabric components, this will be removed + * + * TODO T97384889: remove this class when the component names are unified between JS - Android - + * iOS - C++ + */ +public object FabricComponents { + + // TODO T97384889: unify component names between JS - Android - iOS - C++ + private val componentNames: Map = + mapOf( + "View" to "RCTView", + "Image" to "RCTImageView", + "ScrollView" to "RCTScrollView", + "Slider" to "RCTSlider", + "ModalHostView" to "RCTModalHostView", + "Paragraph" to "RCTText", + "Text" to "RCText", + "RawText" to "RCTRawText", + "ActivityIndicatorView" to "AndroidProgressBar", + "ShimmeringView" to "RKShimmeringView", + "TemplateView" to "RCTTemplateView", + "AxialGradientView" to "RCTAxialGradientView", + "Video" to "RCTVideo", + "Map" to "RCTMap", + "WebView" to "RCTWebView", + "Keyframes" to "RCTKeyframes", + "ImpressionTrackingView" to "RCTImpressionTrackingView", + ) + + /** @return the name of component in the Fabric environment */ + @JvmStatic + public fun getFabricComponentName(componentName: String): String = + componentNames.get(componentName) ?: componentName +}