diff --git a/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js b/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js index 4c542bddfacc9e..71210f989d7e20 100644 --- a/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +++ b/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js @@ -4,22 +4,20 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @flow strict-local * @format + * @flow strict-local */ -import {type HostComponent} from '../../Renderer/shims/ReactNativeTypes'; -import * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry'; -import {type ViewProps as Props} from '../View/ViewPropTypes'; +import codegenNativeComponent from '../../Utilities/codegenNativeComponent'; +import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes'; +import type {ViewProps} from '../View/ViewPropTypes'; -const AndroidHorizontalScrollContentViewNativeComponent: HostComponent = NativeComponentRegistry.get( - 'AndroidHorizontalScrollContentView', - () => ({ - uiViewClassName: 'AndroidHorizontalScrollContentView', - bubblingEventTypes: {}, - directEventTypes: {}, - validAttributes: {}, - }), -); +type NativeProps = $ReadOnly<{| + ...ViewProps, +|}>; -export default AndroidHorizontalScrollContentViewNativeComponent; +type NativeType = HostComponent; + +export default (codegenNativeComponent( + 'AndroidHorizontalScrollContentView', +): NativeType); diff --git a/Libraries/ReactNative/AppRegistry.js b/Libraries/ReactNative/AppRegistry.js index c08d003ac054bb..894d6a291a9c11 100644 --- a/Libraries/ReactNative/AppRegistry.js +++ b/Libraries/ReactNative/AppRegistry.js @@ -124,6 +124,7 @@ const AppRegistry = { showArchitectureIndicator, scopedPerformanceLogger, appKey === 'LogBox', + appKey, ); }, }; diff --git a/Libraries/ReactNative/renderApplication.js b/Libraries/ReactNative/renderApplication.js index 747b8ac36f251c..870b1e28968bf0 100644 --- a/Libraries/ReactNative/renderApplication.js +++ b/Libraries/ReactNative/renderApplication.js @@ -28,12 +28,13 @@ function renderApplication( showArchitectureIndicator?: boolean, scopedPerformanceLogger?: IPerformanceLogger, isLogBox?: boolean, + debugName?: string, ) { invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag); const performanceLogger = scopedPerformanceLogger ?? GlobalPerformanceLogger; - const renderable = ( + let renderable = ( ( ); + if (__DEV__ && debugName) { + const RootComponentWithMeaningfulName = ({children}) => children; + RootComponentWithMeaningfulName.displayName = `${debugName}(RootComponent)`; + renderable = ( + + {renderable} + + ); + } + performanceLogger.startTimespan('renderApplication_React_render'); performanceLogger.setExtra('usedReactFabric', fabric ? '1' : '0'); diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp index 9e367641098980..afa2ede1e094d1 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp @@ -105,7 +105,7 @@ static inline int getIntBufferSizeForType(CppMountItem::Type mountItemType) { } else if (mountItemType == CppMountItem::Type::UpdatePadding) { return 5; // tag, top, left, bottom, right } else if (mountItemType == CppMountItem::Type::UpdateLayout) { - return 7; // tag, x, y, w, h, layoutDirection, DisplayType + return 6; // tag, x, y, w, h, DisplayType } else if (mountItemType == CppMountItem::Type::UpdateEventEmitter) { return 1; // tag } else { @@ -958,8 +958,6 @@ void Binding::schedulerDidFinishTransaction( int y = round(scale(frame.origin.y, pointScaleFactor)); int w = round(scale(frame.size.width, pointScaleFactor)); int h = round(scale(frame.size.height, pointScaleFactor)); - int layoutDirection = - toInt(mountItem.newChildShadowView.layoutMetrics.layoutDirection); int displayType = toInt(mountItem.newChildShadowView.layoutMetrics.displayType); @@ -968,10 +966,9 @@ void Binding::schedulerDidFinishTransaction( temp[2] = y; temp[3] = w; temp[4] = h; - temp[5] = layoutDirection; - temp[6] = displayType; - env->SetIntArrayRegion(intBufferArray, intBufferPosition, 7, temp); - intBufferPosition += 7; + temp[5] = displayType; + env->SetIntArrayRegion(intBufferArray, intBufferPosition, 6, temp); + intBufferPosition += 6; } } if (cppUpdateEventEmitterMountItems.size() > 0) { diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/CoreComponentsRegistry.cpp b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/CoreComponentsRegistry.cpp index 560b8eaaa70fb2..cd13e075b17c1d 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/CoreComponentsRegistry.cpp +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/CoreComponentsRegistry.cpp @@ -64,6 +64,9 @@ CoreComponentsRegistry::sharedProviderRegistry() { concreteComponentDescriptorProvider()); providerRegistry->add( concreteComponentDescriptorProvider()); + providerRegistry->add( + concreteComponentDescriptorProvider< + AndroidHorizontalScrollContentViewComponentDescriptor>()); providerRegistry->add( concreteComponentDescriptorProvider()); providerRegistry->add(concreteComponentDescriptorProvider< diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java b/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java index 311a08143ea3be..d6d3a0f9c2b4e5 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java @@ -161,8 +161,6 @@ public void execute(@NonNull MountingManager mountingManager) { int y = mIntBuffer[i++]; int width = mIntBuffer[i++]; int height = mIntBuffer[i++]; - // The final buffer, layoutDirection, seems unused? - i++; int displayType = mIntBuffer[i++]; surfaceMountingManager.updateLayout(reactTag, x, y, width, height, displayType); @@ -232,8 +230,7 @@ public String toString() { } else if (type == INSTRUCTION_UPDATE_LAYOUT) { s.append( String.format( - "UPDATE LAYOUT [%d]: x:%d y:%d w:%d h:%d layoutDirection:%d displayType:%d\n", - mIntBuffer[i++], + "UPDATE LAYOUT [%d]: x:%d y:%d w:%d h:%d displayType:%d\n", mIntBuffer[i++], mIntBuffer[i++], mIntBuffer[i++], diff --git a/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp b/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp index cb149393dde838..27cb851b102c7c 100644 --- a/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +++ b/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp @@ -68,7 +68,7 @@ static std::string componentNameByReactViewName(std::string viewName) { } // TODO T63839307: remove this condition after deleting TextInlineImage from - // Paper + // non-Fabric code if (viewName == "TextInlineImage") { return "Image"; } @@ -94,9 +94,8 @@ static std::string componentNameByReactViewName(std::string viewName) { // We need this temporarily for testing purposes until we have proper // implementation of core components. - if (viewName == "ScrollContentView" || - viewName == "AndroidHorizontalScrollContentView" // Android - ) { + // iOS-only + if (viewName == "ScrollContentView") { return "View"; }