react-native-tvos 0.85.3-0 → 0.86.0-0rc2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Libraries/Animated/AnimatedImplementation.js +6 -6
- package/Libraries/Animated/NativeAnimatedAllowlist.js +21 -0
- package/Libraries/Animated/components/AnimatedImage.js +3 -3
- package/Libraries/Animated/components/AnimatedText.js +3 -3
- package/Libraries/Animated/createAnimatedComponent.js +7 -7
- package/Libraries/Animated/nodes/AnimatedAddition.js +1 -1
- package/Libraries/Animated/nodes/AnimatedColor.js +7 -7
- package/Libraries/Animated/nodes/AnimatedDiffClamp.js +1 -1
- package/Libraries/Animated/nodes/AnimatedDivision.js +1 -1
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +22 -24
- package/Libraries/Animated/nodes/AnimatedModulo.js +1 -1
- package/Libraries/Animated/nodes/AnimatedMultiplication.js +1 -1
- package/Libraries/Animated/nodes/AnimatedStyle.js +2 -2
- package/Libraries/Animated/nodes/AnimatedSubtraction.js +1 -1
- package/Libraries/Animated/nodes/AnimatedTracking.js +1 -1
- package/Libraries/Animated/nodes/AnimatedValue.js +2 -2
- package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +4 -0
- package/Libraries/AppDelegate/RCTRootViewFactory.h +5 -5
- package/Libraries/AppDelegate/RCTRootViewFactory.mm +2 -2
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/BatchedBridge/NativeModules.js +1 -1
- package/Libraries/Blob/RCTBlobCollector.h +1 -1
- package/Libraries/Blob/RCTBlobCollector.mm +14 -26
- package/Libraries/Blob/RCTBlobManager.mm +11 -3
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +29 -23
- package/Libraries/Components/Keyboard/Keyboard.js +4 -2
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -27
- package/Libraries/Components/Pressable/Pressable.d.ts +1 -0
- package/Libraries/Components/Pressable/Pressable.js +2 -2
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +7 -8
- package/Libraries/Components/ScrollView/ScrollView.js +3 -3
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +2 -2
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +2 -2
- package/Libraries/Components/Switch/Switch.js +1 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +25 -1
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +1 -1
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +2 -2
- package/Libraries/Components/TextInput/TextInput.d.ts +24 -0
- package/Libraries/Components/TextInput/TextInput.flow.js +24 -0
- package/Libraries/Components/TextInput/TextInput.js +5 -5
- package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +5 -5
- package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +5 -5
- package/Libraries/Components/Touchable/PooledClass.js +4 -4
- package/Libraries/Components/Touchable/Touchable.js +1 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +6 -10
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +10 -2
- package/Libraries/Components/View/View.js +96 -91
- package/Libraries/Components/View/ViewPropTypes.js +3 -1
- package/Libraries/Core/Devtools/loadBundleFromServer.js +8 -0
- package/Libraries/Core/ExceptionsManager.js +2 -8
- package/Libraries/Core/InitializeCore.js +0 -13
- package/Libraries/Core/ReactFiberErrorDialog.js +3 -3
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/ReactNativeVersionCheck.js +1 -1
- package/Libraries/Core/Timers/JSTimers.js +2 -2
- package/Libraries/Core/Timers/immediateShim.js +1 -1
- package/Libraries/Core/setUpBatchedBridge.js +1 -1
- package/Libraries/Core/setUpSegmentFetcher.js +1 -1
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +1 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +9 -5
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -2
- package/Libraries/Image/Image.android.js +15 -35
- package/Libraries/Image/RCTImageLoader.mm +4 -2
- package/Libraries/Image/RelativeImageStub.js +2 -2
- package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -12
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +1 -1
- package/Libraries/LogBox/LogBox.js +2 -2
- package/Libraries/LogBox/LogBoxInspectorContainer.js +24 -2
- package/Libraries/LogBox/LogBoxNotificationContainer.js +27 -4
- package/Libraries/LogBox/UI/LogBoxButton.js +47 -33
- package/Libraries/LogBox/UI/LogBoxInspector.js +61 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +6 -0
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +3 -1
- package/Libraries/LogBox/UI/LogBoxNotification.js +2 -0
- package/Libraries/Modal/Modal.js +12 -7
- package/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.mm +0 -2
- package/Libraries/NativeComponent/BaseViewConfig.android.js +15 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +17 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +2 -2
- package/Libraries/NativeComponent/ViewConfigIgnore.js +4 -2
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworking.mm +1 -2
- package/Libraries/Network/XMLHttpRequest.js +29 -12
- package/Libraries/Pressability/Pressability.js +2 -2
- package/Libraries/ReactNative/AppContainer-dev.js +2 -3
- package/Libraries/ReactNative/AppContainer-prod.js +1 -2
- package/Libraries/ReactNative/AppContainer.js +0 -1
- package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
- package/Libraries/ReactNative/AppRegistry.flow.js +1 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +16 -16
- package/Libraries/ReactNative/DeprecatedPerformanceLoggerStub.js +83 -0
- package/Libraries/ReactNative/FabricUIManager.js +6 -0
- package/Libraries/{Utilities → ReactNative}/IPerformanceLogger.d.ts +8 -5
- package/Libraries/{Utilities/IPerformanceLogger.js → ReactNative/IPerformanceLogger.flow.js} +12 -9
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +14 -14
- package/Libraries/ReactNative/RendererImplementation.js +26 -143
- package/Libraries/ReactNative/RendererProxy.js +4 -15
- package/Libraries/ReactNative/renderApplication.js +33 -59
- package/Libraries/ReactNative/requireNativeComponent.js +3 -3
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +5 -0
- package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -32
- package/Libraries/Settings/Settings.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +3 -3
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js.flow +2 -2
- package/Libraries/StyleSheet/StyleSheetExports.js +1 -1
- package/Libraries/StyleSheet/StyleSheetExports.js.flow +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +6 -8
- package/Libraries/StyleSheet/StyleSheetTypes.js +11 -11
- package/Libraries/StyleSheet/flattenStyle.js +1 -1
- package/Libraries/StyleSheet/private/_TransformStyle.js +1 -1
- package/Libraries/StyleSheet/processBackgroundImage.js +19 -9
- package/Libraries/StyleSheet/processBackgroundSize.js +7 -12
- package/Libraries/StyleSheet/processBoxShadow.js +9 -47
- package/Libraries/StyleSheet/processFilter.js +16 -8
- package/Libraries/StyleSheet/processTransformOrigin.js +10 -3
- package/Libraries/Text/Text.js +4 -4
- package/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm +16 -2
- package/Libraries/Text/TextNativeComponent.js +4 -4
- package/Libraries/TurboModule/RCTExport.js +1 -1
- package/Libraries/TurboModule/TurboModuleRegistry.js +3 -3
- package/Libraries/Types/CodegenTypes.js +7 -4
- package/Libraries/Types/ReactDevToolsTypes.js +1 -1
- package/Libraries/Utilities/BackHandler.android.js +11 -3
- package/Libraries/Utilities/BackHandler.d.ts +11 -1
- package/Libraries/Utilities/BackHandler.ios.js +3 -1
- package/Libraries/Utilities/BackHandler.js.flow +6 -1
- package/Libraries/Utilities/HardwareBackPressEvent.js +22 -0
- package/Libraries/Utilities/ReactNativeTestTools.js +4 -4
- package/Libraries/Utilities/binaryToBase64.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +2 -2
- package/Libraries/Utilities/codegenNativeComponent.js +4 -4
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +2 -2
- package/Libraries/Utilities/stringifySafe.js +1 -1
- package/Libraries/promiseRejectionTrackingOptions.js +1 -1
- package/Libraries/vendor/core/ErrorUtils.js +4 -4
- package/Libraries/vendor/emitter/EventEmitter.js +27 -13
- package/React/Base/RCTBundleURLProvider.h +19 -1
- package/React/Base/RCTBundleURLProvider.mm +82 -0
- package/React/Base/RCTDefines.h +1 -1
- package/React/Base/RCTMultipartDataTask.h +1 -1
- package/React/Base/RCTMultipartDataTask.m +0 -3
- package/React/Base/RCTRootView.h +4 -0
- package/React/Base/RCTRootViewDelegate.h +5 -2
- package/React/Base/RCTVersion.m +3 -3
- package/React/Base/Surface/RCTSurface.h +3 -0
- package/React/Base/Surface/RCTSurfaceDelegate.h +7 -3
- package/React/Base/Surface/RCTSurfaceRootView.mm +1 -1
- package/React/Base/Surface/RCTSurfaceView.mm +2 -1
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +2 -0
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.h +0 -3
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm +3 -1
- package/React/CoreModules/RCTDevMenuConfigurationDecorator.h +2 -2
- package/React/CoreModules/RCTRedBox2AnsiParser.mm +1 -1
- package/React/CoreModules/RCTWebSocketModule.mm +45 -6
- package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +0 -1
- package/React/DevSupport/RCTInspectorDevServerHelper.mm +4 -0
- package/React/DevSupport/RCTPackagerConnection.mm +13 -11
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +108 -43
- package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.h +1 -0
- package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.mm +1 -0
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.h +1 -1
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +2 -2
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +70 -8
- package/React/Fabric/RCTConversions.h +14 -0
- package/React/Fabric/RCTScheduler.mm +18 -0
- package/React/Fabric/RCTSurfacePointerHandler.mm +8 -2
- package/React/Fabric/RCTSurfaceTouchHandler.mm +1 -0
- package/React/Fabric/Surface/RCTFabricSurface.mm +3 -0
- package/React/I18n/strings/pt.lproj/fbt_language_pack.bin +0 -0
- package/React/Modules/RCTUIManager.mm +1 -1
- package/React/Profiler/RCTProfile.h +5 -0
- package/React/Profiler/RCTProfile.m +2 -1
- package/React/Profiler/RCTProfileTrampoline-arm.S +1 -1
- package/React/Profiler/RCTProfileTrampoline-arm64.S +1 -1
- package/React/Profiler/RCTProfileTrampoline-i386.S +1 -1
- package/React/Profiler/RCTProfileTrampoline-x86_64.S +1 -1
- package/React/Tests/Mounting/RCTViewComponentViewTests.mm +186 -0
- package/React/Tests/Text/RCTAttributedTextUtilsTest.mm +5 -5
- package/React/Views/RCTLayout.m +4 -3
- package/React/Views/ScrollView/RCTScrollView.h +6 -2
- package/ReactAndroid/api/ReactAndroid.api +37 -27
- package/ReactAndroid/build.gradle.kts +28 -21
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/HermesSamplingProfiler.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/ReactAndroidHWInputDeviceHelper.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +40 -110
- package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +32 -87
- package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.kt +9 -99
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.kt +7 -28
- package/ReactAndroid/src/main/java/com/facebook/react/animated/PropsAnimatedNode.kt +2 -19
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.kt +15 -23
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +36 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNativeJNISoLoader.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNativeJniCommonSoLoader.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultSoLoader.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/FpsView.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.kt +15 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxDialogSurfaceDelegate.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/DevSupportHttpClient.kt +9 -34
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +9 -10
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkRequestListener.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +10 -10
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/AnimationBackendChoreographer.kt +15 -13
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/DevToolsReactPerfLogger.kt +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +139 -43
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/ViewTransitionSnapshotManager.kt +223 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.kt +25 -8
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +34 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.kt +104 -65
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.kt +9 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt +172 -36
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/interfaces/ExtraWindowEventListener.kt +29 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +41 -29
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +71 -51
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +15 -11
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +16 -12
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +79 -57
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android.kt +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +15 -11
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt +5 -9
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/rewrite_feature_flag_defaults.py +76 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/tests/test_rewrite_feature_flag_defaults.py +63 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/tracing/PerformanceTracer.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobModule.kt +10 -5
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobProvider.kt +1 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.kt +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/DeviceEventManagerModule.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactChoreographer.kt +21 -20
- package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.kt +63 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.kt +59 -62
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +8 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.kt +45 -36
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +5 -2
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/CoreReactPackage.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +18 -5
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +8 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +21 -19
- package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/soloader/OpenSourceMergedSoMapping.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +77 -72
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +7 -16
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BlendModeHelper.kt +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.kt +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FilterHelper.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +25 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactRootViewTagGenerator.kt +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/RootViewUtil.kt +17 -7
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +18 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.kt +20 -12
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +18 -24
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIConstantsProviderBinding.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.kt +11 -71
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +10 -17
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/ViewUtil.kt +29 -30
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundImageDrawable.kt +5 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/InsetBoxShadowDrawable.kt +12 -13
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +30 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/SynchronousEventReceiver.kt +28 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +9 -9
- package/ReactAndroid/src/main/java/com/facebook/react/util/AndroidVersion.kt +27 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/MaintainVisibleScrollPositionHelper.kt +1 -14
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerViewManager.kt +1 -22
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +18 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollView.java +20 -21
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +19 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +14 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/FontMetricsUtil.kt +2 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +5 -162
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +71 -97
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/CustomStyleSpan.kt +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/DrawCommandSpan.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +7 -13
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +40 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.kt +59 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +84 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +41 -65
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt +85 -13
- package/ReactAndroid/src/main/java/com/facebook/soloader/annotation/SoLoaderLibrary.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaAlign.java +5 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIFinalizer.kt +30 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDisplay.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaExperimentalFeature.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGridTrackType.java +39 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaJustify.java +20 -12
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +101 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIFinalizer.kt +33 -0
- package/ReactAndroid/src/main/jni/CMakeLists.txt +10 -1
- package/ReactAndroid/src/main/jni/react/fabric/ComponentFactory.cpp +0 -1
- package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +0 -2
- package/ReactAndroid/src/main/jni/react/fabric/EventEmitterWrapper.cpp +26 -6
- package/ReactAndroid/src/main/jni/react/fabric/EventEmitterWrapper.h +3 -3
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +47 -0
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +20 -6
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +24 -1
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +6 -0
- package/ReactAndroid/src/main/jni/react/fabric/FocusOrderingHelper.cpp +0 -1
- package/ReactAndroid/src/main/jni/react/fabric/SurfaceHandlerBinding.cpp +1 -0
- package/ReactAndroid/src/main/jni/react/fabric/test_helper/FabricMountingManagerTestHelper.cpp +85 -0
- package/ReactAndroid/src/main/jni/react/fabric/test_helper/FabricMountingManagerTestHelper.h +46 -0
- package/ReactAndroid/src/main/jni/react/fabric/test_helper/OnLoad.cpp +16 -0
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +97 -69
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +21 -15
- package/ReactAndroid/src/main/jni/react/hermes/instrumentation/HermesSamplingProfiler.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/jni/OnLoad-common.cpp +0 -2
- package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +2 -1
- package/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.cpp +37 -30
- package/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.h +11 -8
- package/ReactAndroid/src/main/jni/react/reactnativeblob/CMakeLists.txt +2 -1
- package/ReactAndroid/src/main/jni/react/reactnativeblob/OnLoad.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +10 -0
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +7 -0
- package/ReactAndroid/src/main/jni/react/tracing/CMakeLists.txt +28 -0
- package/ReactCommon/React-Fabric.podspec +7 -0
- package/ReactCommon/React-FabricComponents.podspec +1 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +5 -5
- package/ReactCommon/jsc/JSCRuntime.cpp +9 -0
- package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +1 -0
- package/ReactCommon/jserrorhandler/JsErrorHandler.h +1 -1
- package/ReactCommon/jsi/jsi/JSIDynamic.cpp +1 -0
- package/ReactCommon/jsi/jsi/decorator.h +93 -0
- package/ReactCommon/jsi/jsi/jsi-inl.h +97 -68
- package/ReactCommon/jsi/jsi/jsi.cpp +208 -27
- package/ReactCommon/jsi/jsi/jsi.h +553 -224
- package/ReactCommon/jsi/jsi/test/testlib.cpp +453 -0
- package/ReactCommon/jsiexecutor/jsireact/JSINativeModules.cpp +1 -1
- package/ReactCommon/jsinspector-modern/EmulationAgent.cpp +108 -0
- package/ReactCommon/jsinspector-modern/EmulationAgent.h +47 -0
- package/ReactCommon/jsinspector-modern/HostAgent.cpp +10 -1
- package/ReactCommon/jsinspector-modern/HostTarget.h +25 -0
- package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +6 -2
- package/ReactCommon/jsinspector-modern/InspectorFlags.h +5 -2
- package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +19 -2
- package/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h +3 -0
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +10 -0
- package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +0 -1
- package/ReactCommon/logger/react_native_log.cpp +0 -1
- package/ReactCommon/react/bridging/Array.h +1 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +29 -21
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +35 -25
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +168 -132
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +18 -14
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +28 -20
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +61 -43
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +3 -3
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +9 -7
- package/ReactCommon/react/featureflags/rewrite_feature_flag_defaults.py +111 -0
- package/ReactCommon/react/featureflags/tests/test_rewrite_feature_flag_defaults.py +60 -0
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.h +3 -9
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +0 -1
- package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
- package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +7 -0
- package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -0
- package/ReactCommon/react/nativemodule/fantomtestspecificmethods/NativeFantomTestSpecificMethods.cpp +2 -2
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +35 -25
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +15 -11
- package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +3 -2
- package/ReactCommon/react/nativemodule/viewtransition/CMakeLists.txt +24 -0
- package/ReactCommon/react/nativemodule/viewtransition/NativeViewTransition.cpp +92 -0
- package/ReactCommon/react/nativemodule/viewtransition/NativeViewTransition.h +37 -0
- package/ReactCommon/react/nativemodule/viewtransition/React-viewtransitionnativemodule.podspec +58 -0
- package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +10 -1
- package/ReactCommon/react/networking/NetworkReporter.h +0 -1
- package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.h +0 -1
- package/ReactCommon/react/performance/timeline/PerformanceEntry.h +1 -1
- package/ReactCommon/react/performance/timeline/tests/PerformanceEntryTest.cpp +62 -0
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +24 -12
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +1 -1
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +3 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +10 -3
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +1 -0
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +4 -0
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +1 -1
- package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +0 -1
- package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +8 -3
- package/ReactCommon/react/renderer/animations/tests/MutationComparatorTest.cpp +273 -0
- package/ReactCommon/react/renderer/animations/utils.h +12 -1
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +1 -1
- package/ReactCommon/react/renderer/attributedstring/conversions.h +104 -3
- package/ReactCommon/react/renderer/components/image/conversions.h +2 -3
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +0 -1
- package/ReactCommon/react/renderer/components/scrollview/conversions.h +0 -1
- package/ReactCommon/react/renderer/components/text/stateConversions.h +0 -1
- package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +531 -21
- package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +9 -0
- package/ReactCommon/react/renderer/components/view/BaseTouch.cpp +3 -2
- package/ReactCommon/react/renderer/components/view/BaseTouch.h +7 -0
- package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +8 -0
- package/ReactCommon/react/renderer/components/view/PointerEvent.cpp +2 -0
- package/ReactCommon/react/renderer/components/view/PointerEvent.h +5 -0
- package/ReactCommon/react/renderer/components/view/TouchEvent.h +0 -2
- package/ReactCommon/react/renderer/components/view/TouchEventEmitter.cpp +23 -5
- package/ReactCommon/react/renderer/components/view/TouchEventEmitter.h +1 -0
- package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +5 -0
- package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +33 -28
- package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +0 -1
- package/ReactCommon/react/renderer/components/view/conversions.h +44 -28
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +53 -5
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/NativeDrawable.h +47 -16
- package/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +2 -2
- package/ReactCommon/react/renderer/{graphics/DoubleConversions.h → components/view/platform/tvos/react/renderer/components/view/HostPlatformTouch.h} +2 -4
- package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewEventEmitter.h +14 -0
- package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewProps.cpp +38 -0
- package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewProps.h +29 -0
- package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +30 -0
- package/ReactCommon/react/renderer/components/view/propsConversions.h +8 -2
- package/ReactCommon/react/renderer/components/view/tests/ConversionsTest.cpp +86 -0
- package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +34 -0
- package/ReactCommon/react/renderer/core/EventEmitter.cpp +67 -2
- package/ReactCommon/react/renderer/core/EventEmitter.h +25 -0
- package/ReactCommon/react/renderer/core/EventPipe.h +3 -1
- package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +18 -10
- package/ReactCommon/react/renderer/core/EventTarget.cpp +8 -5
- package/ReactCommon/react/renderer/core/LayoutContext.h +9 -2
- package/ReactCommon/react/renderer/core/LayoutMetrics.cpp +5 -3
- package/ReactCommon/react/renderer/core/LayoutPrimitives.h +1 -0
- package/ReactCommon/react/renderer/core/Props.cpp +20 -0
- package/ReactCommon/react/renderer/core/RawEvent.cpp +4 -2
- package/ReactCommon/react/renderer/core/RawEvent.h +6 -6
- package/ReactCommon/react/renderer/core/ShadowNode.h +2 -2
- package/ReactCommon/react/renderer/core/conversions.h +4 -0
- package/ReactCommon/react/renderer/core/graphicsConversions.h +4 -4
- package/ReactCommon/react/renderer/core/propsConversions.h +1 -1
- package/ReactCommon/react/renderer/core/tests/EventQueueProcessorTest.cpp +52 -3
- package/ReactCommon/react/renderer/core/tests/EventTargetTests.cpp +26 -0
- package/ReactCommon/react/renderer/css/tests/CSSValueParserTest.cpp +1 -1
- package/ReactCommon/react/renderer/debug/DebugStringConvertible.cpp +42 -26
- package/ReactCommon/react/renderer/debug/DebugStringConvertible.h +4 -2
- package/ReactCommon/react/renderer/debug/tests/DebugStringConvertibleTest.cpp +34 -3
- package/ReactCommon/react/renderer/graphics/BlendMode.h +5 -0
- package/ReactCommon/react/renderer/graphics/CMakeLists.txt +1 -0
- package/ReactCommon/react/renderer/graphics/ColorStop.h +3 -0
- package/ReactCommon/react/renderer/graphics/LinearGradient.h +3 -0
- package/ReactCommon/react/renderer/graphics/RadialGradient.h +4 -0
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -0
- package/ReactCommon/react/renderer/graphics/ValueUnit.cpp +1 -1
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +0 -5
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +2 -2
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h +0 -4
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +5 -1
- package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp +12 -4
- package/ReactCommon/react/renderer/mounting/CMakeLists.txt +1 -0
- package/ReactCommon/react/renderer/mounting/Differentiator.cpp +307 -4
- package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +27 -2
- package/ReactCommon/react/renderer/mounting/internal/LongestIncreasingSubsequence.h +95 -0
- package/ReactCommon/react/renderer/mounting/tests/DifferentiatorUnflattenTest.cpp +212 -0
- package/ReactCommon/react/renderer/mounting/tests/LongestIncreasingSubsequenceTest.cpp +154 -0
- package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +314 -18
- package/ReactCommon/react/renderer/mounting/updateMountedFlag.cpp +38 -20
- package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +20 -22
- package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +1 -0
- package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +76 -3
- package/ReactCommon/react/renderer/scheduler/Scheduler.h +12 -0
- package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +5 -0
- package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +0 -7
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +2 -1
- package/ReactCommon/react/renderer/uimanager/UIManager.cpp +16 -1
- package/ReactCommon/react/renderer/uimanager/UIManager.h +8 -0
- package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +1 -0
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +347 -5
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +5 -3
- package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +5 -0
- package/ReactCommon/react/renderer/uimanager/UIManagerViewTransitionDelegate.h +82 -0
- package/ReactCommon/react/renderer/viewtransition/CMakeLists.txt +22 -0
- package/ReactCommon/react/renderer/viewtransition/ViewTransitionModule.cpp +520 -0
- package/ReactCommon/react/renderer/viewtransition/ViewTransitionModule.h +161 -0
- package/ReactCommon/react/runtime/TimerManager.cpp +4 -2
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +37 -0
- package/ReactCommon/react/timing/PrivacyInfo.xcprivacy +21 -0
- package/ReactCommon/react/timing/React-timing.podspec +2 -0
- package/ReactCommon/react/timing/primitives.h +33 -1
- package/ReactCommon/yoga/yoga/YGEnums.cpp +32 -0
- package/ReactCommon/yoga/yoga/YGEnums.h +20 -4
- package/ReactCommon/yoga/yoga/YGMacros.h +2 -0
- package/ReactCommon/yoga/yoga/YGNode.h +1 -1
- package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +269 -0
- package/ReactCommon/yoga/yoga/YGNodeStyle.h +93 -1
- package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp +40 -9
- package/ReactCommon/yoga/yoga/algorithm/Align.h +12 -1
- package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +106 -14
- package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.h +22 -0
- package/ReactCommon/yoga/yoga/enums/Align.h +3 -1
- package/ReactCommon/yoga/yoga/enums/Display.h +2 -1
- package/ReactCommon/yoga/yoga/enums/ExperimentalFeature.h +2 -1
- package/ReactCommon/yoga/yoga/enums/GridTrackType.h +43 -0
- package/ReactCommon/yoga/yoga/enums/Justify.h +5 -1
- package/ReactCommon/yoga/yoga/event/event.cpp +2 -0
- package/ReactCommon/yoga/yoga/event/event.h +1 -0
- package/ReactCommon/yoga/yoga/node/Node.cpp +6 -1
- package/ReactCommon/yoga/yoga/node/Node.h +4 -4
- package/ReactCommon/yoga/yoga/style/GridLine.h +53 -0
- package/ReactCommon/yoga/yoga/style/GridTrack.h +63 -0
- package/ReactCommon/yoga/yoga/style/Style.h +261 -71
- package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +7 -1
- package/ReactCommon/yoga/yoga/style/StyleValueHandle.h +8 -0
- package/ReactCommon/yoga/yoga/style/StyleValuePool.h +10 -0
- package/cli.js +1 -1
- package/flow/HermesInternalType.js +1 -1
- package/flow/bom.js.flow +95 -3
- package/flow/dom.js.flow +89 -89
- package/gradle/libs.versions.toml +3 -1
- package/index.js +30 -3
- package/index.js.flow +23 -1
- package/package.json +11 -11
- package/react-native.config.js +3 -3
- package/scripts/cocoapods/rncore.rb +65 -11
- package/scripts/cocoapods/rndependencies.rb +65 -11
- package/scripts/cocoapods/utils.rb +52 -0
- package/scripts/codegen/generate-artifacts-executor/generateCustomURLHandlers.js +1 -1
- package/scripts/codegen/generate-artifacts-executor/generateNativeCode.js +13 -4
- package/scripts/codegen/generate-artifacts-executor/generateRCTModuleProviders.js +1 -1
- package/scripts/codegen/generate-artifacts-executor/generateRCTThirdPartyComponents.js +1 -1
- package/scripts/codegen/generate-artifacts-executor/generateReactCodegenPodspec.js +17 -6
- package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +1 -1
- package/scripts/codegen/generate-artifacts-executor/generateUnstableModulesRequiringMainQueueSetupProvider.js +1 -1
- package/scripts/codegen/generate-artifacts-executor/index.js +2 -0
- package/scripts/codegen/generate-artifacts-executor/utils.js +1 -1
- package/scripts/codegen/generate-specs-cli-executor.js +1 -1
- package/scripts/generate-codegen-artifacts.js +20 -2
- package/scripts/generate-provider-cli.js +1 -1
- package/scripts/react_native_pods.rb +25 -2
- package/scripts/react_native_pods_utils/script_phases.rb +9 -3
- package/scripts/replace-rncore-version.js +20 -0
- package/scripts/xcode/with-environment.sh +7 -1
- package/sdks/.hermesv1version +1 -1
- package/sdks/.hermesversion +1 -1
- package/sdks/hermes-engine/hermes-utils.rb +92 -5
- package/sdks/hermes-engine/version.properties +2 -2
- package/src/private/animated/NativeAnimatedValidation.js +1 -1
- package/src/private/animated/createAnimatedPropsHook.js +2 -2
- package/src/private/components/virtualcollection/FlingConstants.js +21 -0
- package/src/private/components/virtualcollection/Virtual.js +62 -0
- package/src/private/components/virtualcollection/VirtualCollectionView.js +238 -0
- package/src/private/components/virtualcollection/column/VirtualColumn.js +43 -0
- package/src/private/components/virtualcollection/column/VirtualColumnGenerator.js +72 -0
- package/src/private/components/virtualcollection/debug/FlingItemOverlay.js +13 -0
- package/src/private/components/virtualcollection/dom/getScrollParent.js +43 -0
- package/src/private/components/virtualcollection/dom/isScrollableNode.js +22 -0
- package/src/private/components/virtualcollection/row/VirtualRow.js +43 -0
- package/src/private/components/virtualcollection/row/VirtualRowGenerator.js +72 -0
- package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +1 -1
- package/src/private/devsupport/devmenu/specs/NativeDevMenu.js +1 -1
- package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +2 -2
- package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsSettingsManager.js +2 -2
- package/src/private/featureflags/ReactNativeFeatureFlags.js +41 -37
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +9 -7
- package/src/private/renderer/errorhandling/ErrorHandlers.js +3 -3
- package/src/private/renderer/events/LegacySyntheticEvent.js +90 -0
- package/src/private/renderer/events/ReactNativeEventTypeMapping.js +103 -0
- package/src/private/renderer/events/ReactNativeResponder.js +687 -0
- package/src/private/renderer/events/ResponderEvent.js +40 -0
- package/src/private/renderer/events/ResponderTouchHistoryStore.js +258 -0
- package/src/private/renderer/events/dispatchNativeEvent.js +83 -0
- package/src/private/setup/setUpDOM.js +20 -0
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeAccessibilityInfo.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeActionSheetManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAlertManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAppState.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAppearance.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeBlobModule.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeClipboard.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeDevSettings.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeDeviceEventManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeDialogManagerAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeFileReaderModule.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeHeadlessJsTaskSupport.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeI18nManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeImageEditor.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeImageLoaderAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeImageStoreAndroid.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeImageStoreIOS.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeIntentAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeJSCHeapCapture.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeKeyboardObserver.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeLinkingManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeLogBox.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeModalManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeNetworkingAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeNetworkingIOS.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsAndroid.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsIOS.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeRedBox.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeSegmentFetcher.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeSettingsManager.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeShareModule.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeSoundManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeTiming.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeToastAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeVibration.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeWebSocketModule.js +2 -2
- package/src/private/styles/composeStyles.js +1 -1
- package/src/private/types/HostComponent.js +1 -1
- package/src/private/utilities/toExtendedError.js +1 -1
- package/src/private/viewtransition/specs/NativeViewTransition.js +33 -0
- package/src/private/webapis/dom/events/Event.js +10 -1
- package/src/private/webapis/dom/events/EventTarget.js +60 -18
- package/src/private/webapis/dom/events/internals/EventInternals.js +18 -1
- package/src/private/webapis/dom/events/internals/EventTargetInternals.js +12 -0
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +24 -0
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +4 -6
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +70 -1
- package/src/private/webapis/dom/nodes/internals/NodeInternals.js +10 -0
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +1 -1
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +2 -2
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +5 -9
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +2 -2
- package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +2 -2
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +2 -2
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +1 -1
- package/src/private/webapis/performance/specs/NativePerformance.js +1 -1
- package/src/private/webapis/structuredClone/structuredClone.js +1 -1
- package/src/private/webapis/webidl/PlatformObjects.js +4 -4
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +0 -19669
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +0 -11129
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +0 -12930
- package/Libraries/Renderer/shims/ReactNative.js +0 -27
- package/Libraries/Utilities/GlobalPerformanceLogger.js +0 -24
- package/Libraries/Utilities/PerformanceLoggerContext.js +0 -33
- package/Libraries/Utilities/createPerformanceLogger.js +0 -329
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.kt +0 -442
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobCollector.kt +0 -31
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerLegacyView.kt +0 -47
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIFinalizer.java +0 -31
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIFinalizer.java +0 -35
- package/ReactCommon/react/renderer/graphics/DoubleConversions.cpp +0 -38
|
@@ -78,7 +78,7 @@ def use_react_native! (
|
|
|
78
78
|
react_native_path = Pod::Config.instance.installation_root.join(path)
|
|
79
79
|
prefix = react_native_path.relative_path_from(Pod::Config.instance.installation_root)
|
|
80
80
|
|
|
81
|
-
hermes_enabled=
|
|
81
|
+
hermes_enabled= !use_third_party_jsc()
|
|
82
82
|
# Set the app_path as env variable so the podspecs can access it.
|
|
83
83
|
ENV['APP_PATH'] = app_path
|
|
84
84
|
ENV['REACT_NATIVE_PATH'] = react_native_path.to_s
|
|
@@ -159,6 +159,7 @@ def use_react_native! (
|
|
|
159
159
|
pod 'React-idlecallbacksnativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/idlecallbacks"
|
|
160
160
|
pod 'React-intersectionobservernativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/intersectionobserver"
|
|
161
161
|
pod 'React-mutationobservernativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/mutationobserver"
|
|
162
|
+
pod 'React-viewtransitionnativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/viewtransition"
|
|
162
163
|
pod 'React-webperformancenativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/webperformance"
|
|
163
164
|
pod 'React-domnativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/dom"
|
|
164
165
|
pod 'React-defaultsnativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/defaults"
|
|
@@ -531,7 +532,29 @@ def react_native_post_install(
|
|
|
531
532
|
ReactNativePodsUtils.fix_library_search_paths(installer)
|
|
532
533
|
ReactNativePodsUtils.update_search_paths(installer)
|
|
533
534
|
ReactNativePodsUtils.set_build_setting(installer, build_setting: "USE_HERMES", value: use_hermes())
|
|
534
|
-
|
|
535
|
+
# Compute REACT_NATIVE_PATH relative to PODS_ROOT using real (physical)
|
|
536
|
+
# paths, so the relative traversal is correct even when Pods/ is a symlink.
|
|
537
|
+
pods_dir_real = Pathname.new(Pod::Config.instance.sandbox_root.to_s).realpath
|
|
538
|
+
rn_absolute = File.expand_path(react_native_path, Pod::Config.instance.installation_root.to_s)
|
|
539
|
+
rn_real = Pathname.new(rn_absolute).realpath
|
|
540
|
+
rn_relative_to_pods = rn_real.relative_path_from(pods_dir_real)
|
|
541
|
+
ReactNativePodsUtils.set_build_setting(installer, build_setting: "REACT_NATIVE_PATH", value: File.join("${PODS_ROOT}", rn_relative_to_pods.to_s))
|
|
542
|
+
# Store the Podfile directory as a build setting so that shell scripts can
|
|
543
|
+
# locate it without hardcoding an absolute path. Use Xcode variable
|
|
544
|
+
# substitution per-project so the value persisted in project.pbxproj is
|
|
545
|
+
# portable across machines: $(SRCROOT) is the Podfile dir for user projects
|
|
546
|
+
# (also avoids the PODS_ROOT/.. traversal that breaks when Pods/ is a
|
|
547
|
+
# symlink), and $(SRCROOT)/.. for the Pods project.
|
|
548
|
+
installer.aggregate_targets.map(&:user_project).uniq(&:path).each do |user_project|
|
|
549
|
+
user_project.build_configurations.each do |config|
|
|
550
|
+
config.build_settings['PODFILE_DIR'] = '$(SRCROOT)'
|
|
551
|
+
end
|
|
552
|
+
user_project.save
|
|
553
|
+
end
|
|
554
|
+
installer.pods_project.build_configurations.each do |config|
|
|
555
|
+
config.build_settings['PODFILE_DIR'] = '$(SRCROOT)/..'
|
|
556
|
+
end
|
|
557
|
+
installer.pods_project.save
|
|
535
558
|
ReactNativePodsUtils.set_build_setting(installer, build_setting: "SWIFT_ACTIVE_COMPILATION_CONDITIONS", value: ['$(inherited)', 'DEBUG'], config_name: "Debug")
|
|
536
559
|
|
|
537
560
|
if (ENV['RCT_REMOVE_LEGACY_ARCH'] == '1')
|
|
@@ -35,9 +35,15 @@ end
|
|
|
35
35
|
|
|
36
36
|
def get_script_template(react_native_path, export_vars={})
|
|
37
37
|
template =<<~EOS
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
# Use PODFILE_DIR (set by react_native_post_install) to locate the
|
|
39
|
+
# Podfile directory. PODS_ROOT/.. does not work when Pods/ is a symlink.
|
|
40
|
+
if [ -n "$PODFILE_DIR" ]; then
|
|
41
|
+
RCT_SCRIPT_POD_INSTALLATION_ROOT="$PODFILE_DIR"
|
|
42
|
+
else
|
|
43
|
+
pushd "$PODS_ROOT/../" > /dev/null
|
|
44
|
+
RCT_SCRIPT_POD_INSTALLATION_ROOT=$(pwd)
|
|
45
|
+
popd >/dev/null
|
|
46
|
+
fi
|
|
41
47
|
<% export_vars.each do |(varname, value)| %>
|
|
42
48
|
export <%= varname -%>=<%= value -%>
|
|
43
49
|
<% end %>
|
|
@@ -73,6 +73,18 @@ function replaceRNCoreConfiguration(
|
|
|
73
73
|
const tmpExtractDir = path.join(tmpDir, 'React-Core-prebuilt');
|
|
74
74
|
fs.mkdirSync(tmpExtractDir, {recursive: true});
|
|
75
75
|
|
|
76
|
+
// Preserve Expo-generated modulemap before replacing directories
|
|
77
|
+
const useFrameworksModulemapName = 'React-use-frameworks.modulemap';
|
|
78
|
+
const useFrameworksModulemapPath = path.join(
|
|
79
|
+
finalLocation,
|
|
80
|
+
useFrameworksModulemapName,
|
|
81
|
+
);
|
|
82
|
+
let savedModulemap = null;
|
|
83
|
+
if (fs.existsSync(useFrameworksModulemapPath)) {
|
|
84
|
+
console.log('Preserving', useFrameworksModulemapName);
|
|
85
|
+
savedModulemap = fs.readFileSync(useFrameworksModulemapPath);
|
|
86
|
+
}
|
|
87
|
+
|
|
76
88
|
try {
|
|
77
89
|
console.log('Extracting the tarball to temp dir', tarballURLPath);
|
|
78
90
|
const result = spawnSync(
|
|
@@ -135,6 +147,14 @@ function replaceRNCoreConfiguration(
|
|
|
135
147
|
} finally {
|
|
136
148
|
// Clean up temp directory
|
|
137
149
|
fs.rmSync(tmpDir, {force: true, recursive: true});
|
|
150
|
+
|
|
151
|
+
// Restore Expo-generated modulemap after directory replacement.
|
|
152
|
+
// Runs in finally so it is not skipped if mv/cp partially fails.
|
|
153
|
+
if (savedModulemap != null) {
|
|
154
|
+
const restoredPath = path.join(finalLocation, useFrameworksModulemapName);
|
|
155
|
+
fs.writeFileSync(restoredPath, savedModulemap);
|
|
156
|
+
console.log('Restored', useFrameworksModulemapName);
|
|
157
|
+
}
|
|
138
158
|
}
|
|
139
159
|
}
|
|
140
160
|
|
|
@@ -17,7 +17,13 @@ NODE_BINARY=$(command -v node || echo "")
|
|
|
17
17
|
export NODE_BINARY
|
|
18
18
|
|
|
19
19
|
# Override the default with the global environment
|
|
20
|
-
|
|
20
|
+
# Use PODFILE_DIR (set by react_native_post_install) to locate .xcode.env.
|
|
21
|
+
# PODS_ROOT/.. does not work when Pods/ is a symlink.
|
|
22
|
+
if [ -n "$PODFILE_DIR" ]; then
|
|
23
|
+
ENV_PATH="$PODFILE_DIR/.xcode.env"
|
|
24
|
+
else
|
|
25
|
+
ENV_PATH="$PODS_ROOT/../.xcode.env"
|
|
26
|
+
fi
|
|
21
27
|
if [ -f "$ENV_PATH" ]; then
|
|
22
28
|
source "$ENV_PATH"
|
|
23
29
|
fi
|
package/sdks/.hermesv1version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
hermes-v250829098.0.
|
|
1
|
+
hermes-v250829098.0.13
|
package/sdks/.hermesversion
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
hermes-v0.
|
|
1
|
+
hermes-v0.17.0
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
# This source code is licensed under the MIT license found in the
|
|
4
4
|
# LICENSE file in the root directory of this source tree.
|
|
5
5
|
|
|
6
|
+
require 'digest'
|
|
6
7
|
require 'net/http'
|
|
7
8
|
require 'rexml/document'
|
|
8
9
|
require_relative '../../scripts/cocoapods/utils.rb'
|
|
@@ -247,16 +248,102 @@ def download_stable_hermes(react_native_path, version, configuration)
|
|
|
247
248
|
download_hermes_tarball(react_native_path, tarball_url, version, configuration)
|
|
248
249
|
end
|
|
249
250
|
|
|
251
|
+
def shared_cache_dir()
|
|
252
|
+
return File.join(Dir.home, "Library", "Caches", "ReactNative")
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
def fetch_maven_sha1(tarball_url)
|
|
256
|
+
sha1 = `curl -sL "#{tarball_url}.sha1"`.strip
|
|
257
|
+
return sha1.downcase if $?.success? && sha1.match?(/\A[a-fA-F0-9]{40}\z/)
|
|
258
|
+
nil
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
def skip_caches?
|
|
262
|
+
ENV['RCT_SKIP_CACHES'] == '1'
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
def validate_hermes_tarball(path, tarball_url)
|
|
266
|
+
expected_sha1 = fetch_maven_sha1(tarball_url)
|
|
267
|
+
basename = File.basename(path)
|
|
268
|
+
if expected_sha1.nil?
|
|
269
|
+
hermes_log("SHA1 not available from Maven for #{basename}. Skipping validation.", :info)
|
|
270
|
+
return true
|
|
271
|
+
end
|
|
272
|
+
actual_sha1 = Digest::SHA1.file(path).hexdigest
|
|
273
|
+
if actual_sha1 == expected_sha1
|
|
274
|
+
hermes_log("SHA1 verified for #{basename}", :info)
|
|
275
|
+
return true
|
|
276
|
+
end
|
|
277
|
+
hermes_log("SHA1 mismatch for #{basename}: expected #{expected_sha1}, got #{actual_sha1}", :error)
|
|
278
|
+
return false
|
|
279
|
+
end
|
|
280
|
+
|
|
250
281
|
def download_hermes_tarball(react_native_path, tarball_url, version, configuration)
|
|
251
|
-
|
|
252
|
-
"
|
|
253
|
-
"
|
|
282
|
+
filename = configuration == nil ?
|
|
283
|
+
"hermes-ios-#{version}.tar.gz" :
|
|
284
|
+
"hermes-ios-#{version}-#{configuration}.tar.gz"
|
|
285
|
+
destination_path = "#{artifacts_dir()}/#{filename}"
|
|
286
|
+
|
|
287
|
+
if File.exist?(destination_path)
|
|
288
|
+
hermes_log("Tarball #{filename} already exists in Pods. Skipping download.", :info)
|
|
289
|
+
return destination_path
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
`mkdir -p "#{artifacts_dir()}"`
|
|
293
|
+
|
|
294
|
+
if skip_caches?
|
|
295
|
+
hermes_log("RCT_SKIP_CACHES is set. Downloading #{filename} directly (bypassing shared cache).", :info)
|
|
296
|
+
tmp_file = "#{artifacts_dir()}/hermes-ios.download"
|
|
297
|
+
`curl -A "react-native-#{version}" "#{tarball_url}" -Lo "#{tmp_file}" && mv "#{tmp_file}" "#{destination_path}"`
|
|
298
|
+
unless File.exist?(destination_path)
|
|
299
|
+
abort("[Hermes] Failed to download #{filename} from #{tarball_url}. Aborting.")
|
|
300
|
+
end
|
|
301
|
+
return destination_path
|
|
302
|
+
end
|
|
254
303
|
|
|
255
|
-
|
|
304
|
+
cached_path = File.join(shared_cache_dir(), filename)
|
|
305
|
+
if File.exist?(cached_path)
|
|
306
|
+
hermes_log("Verifying checksum for cached #{filename}...", :info)
|
|
307
|
+
if validate_hermes_tarball(cached_path, tarball_url)
|
|
308
|
+
hermes_log("Cache hit: copying #{filename} from shared cache (#{shared_cache_dir()})", :info)
|
|
309
|
+
FileUtils.cp(cached_path, destination_path)
|
|
310
|
+
else
|
|
311
|
+
hermes_log("Shared cache file #{filename} failed SHA verification. Re-downloading.", :info)
|
|
312
|
+
File.delete(cached_path)
|
|
313
|
+
tmp_file = "#{artifacts_dir()}/hermes-ios.download"
|
|
314
|
+
`curl -A "react-native-#{version}" "#{tarball_url}" -Lo "#{tmp_file}" && mv "#{tmp_file}" "#{destination_path}"`
|
|
315
|
+
unless File.exist?(destination_path)
|
|
316
|
+
abort("[Hermes] Failed to download #{filename} from #{tarball_url}. Aborting.")
|
|
317
|
+
end
|
|
318
|
+
hermes_log("Verifying checksum for downloaded #{filename}...", :info)
|
|
319
|
+
if validate_hermes_tarball(destination_path, tarball_url)
|
|
320
|
+
FileUtils.cp(destination_path, cached_path)
|
|
321
|
+
hermes_log("Saved #{filename} to shared cache (#{shared_cache_dir()})", :info)
|
|
322
|
+
else
|
|
323
|
+
File.delete(destination_path) if File.exist?(destination_path)
|
|
324
|
+
abort("[Hermes] Downloaded file #{filename} failed SHA verification. Aborting.")
|
|
325
|
+
end
|
|
326
|
+
end
|
|
327
|
+
else
|
|
328
|
+
hermes_log("Cache miss: downloading #{filename} from #{tarball_url}", :info)
|
|
256
329
|
# Download to a temporary file first so we don't cache incomplete downloads.
|
|
257
330
|
tmp_file = "#{artifacts_dir()}/hermes-ios.download"
|
|
258
|
-
`
|
|
331
|
+
`curl -A "react-native-#{version}" "#{tarball_url}" -Lo "#{tmp_file}" && mv "#{tmp_file}" "#{destination_path}"`
|
|
332
|
+
unless File.exist?(destination_path)
|
|
333
|
+
abort("[Hermes] Failed to download #{filename} from #{tarball_url}. Aborting.")
|
|
334
|
+
end
|
|
335
|
+
hermes_log("Verifying checksum for downloaded #{filename}...", :info)
|
|
336
|
+
if validate_hermes_tarball(destination_path, tarball_url)
|
|
337
|
+
# Save to shared cache for future use
|
|
338
|
+
`mkdir -p "#{shared_cache_dir()}"`
|
|
339
|
+
FileUtils.cp(destination_path, cached_path)
|
|
340
|
+
hermes_log("Saved #{filename} to shared cache (#{shared_cache_dir()})", :info)
|
|
341
|
+
else
|
|
342
|
+
File.delete(destination_path) if File.exist?(destination_path)
|
|
343
|
+
abort("[Hermes] Downloaded file #{filename} failed SHA verification. Aborting.")
|
|
344
|
+
end
|
|
259
345
|
end
|
|
346
|
+
|
|
260
347
|
return destination_path
|
|
261
348
|
end
|
|
262
349
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
HERMES_VERSION_NAME=0.
|
|
2
|
-
HERMES_V1_VERSION_NAME=250829098.0.
|
|
1
|
+
HERMES_VERSION_NAME=0.17.0
|
|
2
|
+
HERMES_V1_VERSION_NAME=250829098.0.13
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
} from '../../../Libraries/Animated/NativeAnimatedAllowlist';
|
|
21
21
|
|
|
22
22
|
export function validateInterpolation<
|
|
23
|
-
OutputT
|
|
23
|
+
OutputT extends InterpolationConfigSupportedOutputType,
|
|
24
24
|
>(config: InterpolationConfigType<OutputT>): void {
|
|
25
25
|
for (const key in config) {
|
|
26
26
|
if (key !== 'debugID' && !isSupportedInterpolationParam(key)) {
|
|
@@ -36,7 +36,7 @@ type ReducedProps<TProps> = {
|
|
|
36
36
|
};
|
|
37
37
|
type CallbackRef<T> = T => unknown;
|
|
38
38
|
|
|
39
|
-
export type AnimatedPropsHook = <TProps
|
|
39
|
+
export type AnimatedPropsHook = <TProps extends {...}, TInstance>(
|
|
40
40
|
props: TProps,
|
|
41
41
|
) => [ReducedProps<TProps>, CallbackRef<TInstance | null>];
|
|
42
42
|
|
|
@@ -55,7 +55,7 @@ export default function createAnimatedPropsHook(
|
|
|
55
55
|
const useNativePropsInFabric =
|
|
56
56
|
ReactNativeFeatureFlags.shouldUseSetNativePropsInFabric();
|
|
57
57
|
|
|
58
|
-
return function useAnimatedProps<TProps
|
|
58
|
+
return function useAnimatedProps<TProps extends {...}, TInstance>(
|
|
59
59
|
props: TProps,
|
|
60
60
|
): [ReducedProps<TProps>, CallbackRef<TInstance | null>] {
|
|
61
61
|
const [, scheduleUpdate] = useReducer<number, void>(count => count + 1, 0);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict-local
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import Dimensions from '../../../../Libraries/Utilities/Dimensions';
|
|
12
|
+
|
|
13
|
+
export const DEFAULT_INITIAL_NUM_TO_RENDER = 7;
|
|
14
|
+
|
|
15
|
+
export const INITIAL_NUM_TO_RENDER: number = DEFAULT_INITIAL_NUM_TO_RENDER;
|
|
16
|
+
|
|
17
|
+
export const FALLBACK_ESTIMATED_HEIGHT: number =
|
|
18
|
+
Dimensions.get('window').height / DEFAULT_INITIAL_NUM_TO_RENDER;
|
|
19
|
+
|
|
20
|
+
export const FALLBACK_ESTIMATED_WIDTH: number =
|
|
21
|
+
Dimensions.get('window').width / DEFAULT_INITIAL_NUM_TO_RENDER;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* An item to virtualize must be an item. It can optionally have a string `id`
|
|
13
|
+
* parameter, but that is not currently represented because it makes the Flow
|
|
14
|
+
* types more complicated.
|
|
15
|
+
*/
|
|
16
|
+
export interface Item {}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* An interface for a collection of items, without requiring that each item be
|
|
20
|
+
* eagerly (or lazily) allocated.
|
|
21
|
+
*/
|
|
22
|
+
export interface VirtualCollection<+T extends Item> {
|
|
23
|
+
/**
|
|
24
|
+
* The number of items in the collection. This can either be a numeric scalar
|
|
25
|
+
* or a getter function that is computed on access. However, it should remain
|
|
26
|
+
* constant for the lifetime of this object.
|
|
27
|
+
*/
|
|
28
|
+
+size: number;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* If an item exists at the supplied index, this should return a consistent
|
|
32
|
+
* item for the lifetime of this object. If an item does not exist at the
|
|
33
|
+
* supplied index, this should throw an error.
|
|
34
|
+
*/
|
|
35
|
+
at(index: number): T;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* An implementation of `VirtualCollection` that wraps an array. Although easy to
|
|
40
|
+
* use, this is not recommended for larger arrays because each element of an
|
|
41
|
+
* array is eagerly allocated.
|
|
42
|
+
*/
|
|
43
|
+
export class VirtualArray<+T extends Item> implements VirtualCollection<T> {
|
|
44
|
+
+size: number;
|
|
45
|
+
+at: (index: number) => T;
|
|
46
|
+
|
|
47
|
+
constructor(input: Readonly<$ArrayLike<T>>) {
|
|
48
|
+
const array = [...input];
|
|
49
|
+
|
|
50
|
+
// NOTE: This is implemented this way because Flow does not permit `input`
|
|
51
|
+
// to be a read-only instance property (even a private one).
|
|
52
|
+
this.size = array.length;
|
|
53
|
+
this.at = (index: number): T => {
|
|
54
|
+
if (index < 0 || index >= this.size) {
|
|
55
|
+
throw new RangeError(
|
|
56
|
+
`Cannot get index ${index} from a collection of size ${this.size}`,
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
return array[index];
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict-local
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import type {ViewStyleProp} from '../../../../Libraries/StyleSheet/StyleSheet';
|
|
12
|
+
import type {ModeChangeEvent} from '../virtualview/VirtualView';
|
|
13
|
+
import type {Item, VirtualCollection} from './Virtual';
|
|
14
|
+
|
|
15
|
+
import VirtualView from '../virtualview/VirtualView';
|
|
16
|
+
import {
|
|
17
|
+
VirtualViewMode,
|
|
18
|
+
createHiddenVirtualView,
|
|
19
|
+
} from '../virtualview/VirtualView';
|
|
20
|
+
import FlingItemOverlay from './debug/FlingItemOverlay';
|
|
21
|
+
import * as React from 'react';
|
|
22
|
+
import {useCallback, useMemo, useState} from 'react';
|
|
23
|
+
|
|
24
|
+
export type VirtualCollectionLayoutComponent<TLayoutProps extends {...}> =
|
|
25
|
+
component(
|
|
26
|
+
children: ReadonlyArray<React.Node>,
|
|
27
|
+
spacer: React.Node,
|
|
28
|
+
...TLayoutProps
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
export type VirtualCollectionGenerator = Readonly<{
|
|
32
|
+
initial: Readonly<{
|
|
33
|
+
itemCount: number,
|
|
34
|
+
spacerStyle: (itemCount: number) => ViewStyleProp,
|
|
35
|
+
}>,
|
|
36
|
+
next: (event: ModeChangeEvent) => {
|
|
37
|
+
itemCount: number,
|
|
38
|
+
spacerStyle: (itemCount: number) => ViewStyleProp,
|
|
39
|
+
},
|
|
40
|
+
}>;
|
|
41
|
+
|
|
42
|
+
export type VirtualCollectionViewComponent<TLayoutProps extends {...}> =
|
|
43
|
+
component<+TItem extends Item>(
|
|
44
|
+
children: (item: TItem, key: string) => React.Node,
|
|
45
|
+
items: VirtualCollection<TItem>,
|
|
46
|
+
itemToKey?: (TItem) => string,
|
|
47
|
+
removeClippedSubviews?: boolean,
|
|
48
|
+
testID?: ?string,
|
|
49
|
+
...TLayoutProps
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Creates a component that virtually renders a collection of items and manages
|
|
54
|
+
* lazy rendering, memoization, and pagination. The resulting component accepts
|
|
55
|
+
* the following base props:
|
|
56
|
+
*
|
|
57
|
+
* - `children`: A function maps an item to a React node.
|
|
58
|
+
* - `items`: A collection of items to render.
|
|
59
|
+
* - `itemToKey`: A function maps an item to a unique key.
|
|
60
|
+
*
|
|
61
|
+
* The first argument is a layout component that defines layout of the item and
|
|
62
|
+
* spacer. It always receives the following props:
|
|
63
|
+
*
|
|
64
|
+
* - `children`: An array of React nodes (for items rendered so far).
|
|
65
|
+
* - `spacer`: A React node (estimates layout for items not yet rendered).
|
|
66
|
+
*
|
|
67
|
+
* The layout component must render `children` and `spacer`. It can also define
|
|
68
|
+
* additional props that will be passed through from the resulting component.
|
|
69
|
+
*
|
|
70
|
+
* The second argument is a generator that defines the initial rendering and
|
|
71
|
+
* pagination behavior. The initial rendering behavior is defined by the
|
|
72
|
+
* `initial` property with the following properties:
|
|
73
|
+
*
|
|
74
|
+
* - `itemCount`: Number of items to render initially.
|
|
75
|
+
* - `spacerStyle`: A function that estimates the layout of the spacer. It
|
|
76
|
+
* receives the number of items being rendered as an argument.
|
|
77
|
+
*
|
|
78
|
+
* The pagination behavior is defined by the `next` function that receives a
|
|
79
|
+
* `ModeChangeEvent` and then returns an object with the following properties:
|
|
80
|
+
*
|
|
81
|
+
* - `itemCount`: Number of additional items needed to fill `thresholdRect`.
|
|
82
|
+
* - `spacerStyle`: A function that estimates the layout of the spacer. It
|
|
83
|
+
* receives the number of items being rendered as an argument.
|
|
84
|
+
*
|
|
85
|
+
*/
|
|
86
|
+
export function createVirtualCollectionView<TLayoutProps extends {...}>(
|
|
87
|
+
VirtualLayout: VirtualCollectionLayoutComponent<TLayoutProps>,
|
|
88
|
+
{initial, next}: VirtualCollectionGenerator,
|
|
89
|
+
): VirtualCollectionViewComponent<TLayoutProps> {
|
|
90
|
+
component VirtualCollectionView<+TItem extends Item>(
|
|
91
|
+
children: (item: TItem, key: string) => React.Node,
|
|
92
|
+
items: VirtualCollection<TItem>,
|
|
93
|
+
itemToKey: TItem => string = defaultItemToKey,
|
|
94
|
+
removeClippedSubviews: boolean = false,
|
|
95
|
+
testID?: ?string,
|
|
96
|
+
...layoutProps: TLayoutProps
|
|
97
|
+
) {
|
|
98
|
+
const [desiredItemCount, setDesiredItemCount] = useState(
|
|
99
|
+
Math.ceil(initial.itemCount),
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
const renderItem = useMemoCallback(
|
|
103
|
+
useCallback(
|
|
104
|
+
(item: TItem) => {
|
|
105
|
+
const key = itemToKey(item);
|
|
106
|
+
return (
|
|
107
|
+
<VirtualView
|
|
108
|
+
key={key}
|
|
109
|
+
nativeID={key}
|
|
110
|
+
removeClippedSubviews={removeClippedSubviews}>
|
|
111
|
+
{FlingItemOverlay == null ? null : (
|
|
112
|
+
<FlingItemOverlay nativeID={key} />
|
|
113
|
+
)}
|
|
114
|
+
{children(item, key)}
|
|
115
|
+
</VirtualView>
|
|
116
|
+
);
|
|
117
|
+
},
|
|
118
|
+
[children, itemToKey, removeClippedSubviews],
|
|
119
|
+
),
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
const mountedItemCount = Math.min(desiredItemCount, items.size);
|
|
123
|
+
const mountedItemViews = Array.from(
|
|
124
|
+
{length: mountedItemCount},
|
|
125
|
+
(_, index) => renderItem(items.at(index)),
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
const virtualItemCount = items.size - mountedItemCount;
|
|
129
|
+
const virtualItemSpacer = useMemo(
|
|
130
|
+
() =>
|
|
131
|
+
virtualItemCount === 0 ? null : (
|
|
132
|
+
<VirtualCollectionSpacer
|
|
133
|
+
nativeID={`${testID ?? ''}:Spacer`}
|
|
134
|
+
virtualItemCount={virtualItemCount}
|
|
135
|
+
onRenderMoreItems={(itemCount: number) => {
|
|
136
|
+
setDesiredItemCount(
|
|
137
|
+
prevElementCount => prevElementCount + itemCount,
|
|
138
|
+
);
|
|
139
|
+
}}
|
|
140
|
+
/>
|
|
141
|
+
),
|
|
142
|
+
[virtualItemCount, testID],
|
|
143
|
+
);
|
|
144
|
+
|
|
145
|
+
return (
|
|
146
|
+
<VirtualLayout {...layoutProps} spacer={virtualItemSpacer}>
|
|
147
|
+
{mountedItemViews}
|
|
148
|
+
</VirtualLayout>
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
function createSpacerView(spacerStyle: (itemCount: number) => ViewStyleProp) {
|
|
153
|
+
component SpacerView(
|
|
154
|
+
itemCount: number,
|
|
155
|
+
ref?: React.RefSetter<React.RefOf<VirtualView> | null>,
|
|
156
|
+
...props: Omit<React.PropsOf<VirtualView>, 'ref'>
|
|
157
|
+
) {
|
|
158
|
+
const HiddenVirtualView = useMemo(
|
|
159
|
+
() => createHiddenVirtualView(spacerStyle(itemCount)),
|
|
160
|
+
[itemCount],
|
|
161
|
+
);
|
|
162
|
+
return <HiddenVirtualView ref={ref} {...props} />;
|
|
163
|
+
}
|
|
164
|
+
return SpacerView;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
const initialSpacerView = {
|
|
168
|
+
SpacerView: createSpacerView(initial.spacerStyle),
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
component VirtualCollectionSpacer(
|
|
172
|
+
nativeID: string,
|
|
173
|
+
virtualItemCount: number,
|
|
174
|
+
|
|
175
|
+
onRenderMoreItems: (itemCount: number) => void,
|
|
176
|
+
) {
|
|
177
|
+
// NOTE: Store `SpacerView` in a wrapper object because otherwise, `useState`
|
|
178
|
+
// will confuse `SpacerView` (a component) as being an updater function.
|
|
179
|
+
const [{SpacerView}, setSpacerView] = useState(initialSpacerView);
|
|
180
|
+
|
|
181
|
+
const handleModeChange = (event: ModeChangeEvent) => {
|
|
182
|
+
if (event.mode === VirtualViewMode.Hidden) {
|
|
183
|
+
// This should never happen; this starts hidden and otherwise unmounts.
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
const {itemCount, spacerStyle} = next(event);
|
|
187
|
+
|
|
188
|
+
// Refine the estimated item size when computing spacer size.
|
|
189
|
+
setSpacerView({
|
|
190
|
+
SpacerView: createSpacerView(spacerStyle),
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
// Render more items to fill `thresholdRect`.
|
|
194
|
+
onRenderMoreItems(Math.min(Math.ceil(itemCount), virtualItemCount));
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
return (
|
|
198
|
+
<SpacerView
|
|
199
|
+
itemCount={virtualItemCount}
|
|
200
|
+
nativeID={nativeID}
|
|
201
|
+
onModeChange={handleModeChange}
|
|
202
|
+
/>
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
return VirtualCollectionView;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
hook useMemoCallback<TInput extends interface {}, TOutput>(
|
|
210
|
+
callback: TInput => TOutput,
|
|
211
|
+
): TInput => TOutput {
|
|
212
|
+
return useMemo(() => memoize(callback), [callback]);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
function memoize<TInput extends interface {}, TOutput>(
|
|
216
|
+
callback: TInput => TOutput,
|
|
217
|
+
): TInput => TOutput {
|
|
218
|
+
const cache = new WeakMap<TInput, TOutput>();
|
|
219
|
+
return (input: TInput) => {
|
|
220
|
+
let output = cache.get(input);
|
|
221
|
+
if (output == null) {
|
|
222
|
+
output = callback(input);
|
|
223
|
+
cache.set(input, output);
|
|
224
|
+
}
|
|
225
|
+
return output;
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
function defaultItemToKey(item: Item): string {
|
|
230
|
+
// $FlowExpectedError[prop-missing] - Flow cannot model this dynamic pattern.
|
|
231
|
+
const key = item.key;
|
|
232
|
+
if (typeof key !== 'string') {
|
|
233
|
+
throw new TypeError(
|
|
234
|
+
`Expected 'id' of item to be a string, got: ${typeof key}`,
|
|
235
|
+
);
|
|
236
|
+
}
|
|
237
|
+
return key;
|
|
238
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict-local
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import type {Item, VirtualCollection} from '../Virtual';
|
|
12
|
+
|
|
13
|
+
import {createVirtualCollectionView} from '../VirtualCollectionView';
|
|
14
|
+
import VirtualColumnGenerator from './VirtualColumnGenerator';
|
|
15
|
+
import * as React from 'react';
|
|
16
|
+
|
|
17
|
+
component VirtualColumnLayout(
|
|
18
|
+
children: ReadonlyArray<React.Node>,
|
|
19
|
+
spacer: React.Node,
|
|
20
|
+
) {
|
|
21
|
+
return (
|
|
22
|
+
<>
|
|
23
|
+
{children}
|
|
24
|
+
{spacer}
|
|
25
|
+
</>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const VirtualColumn = createVirtualCollectionView(
|
|
30
|
+
VirtualColumnLayout,
|
|
31
|
+
VirtualColumnGenerator,
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
// TODO: Figure out component generic resolution.
|
|
35
|
+
// @see https://fb.workplace.com/groups/flow/posts/29355518614070041
|
|
36
|
+
// export default VirtualColumn as VirtualCollectionViewComponent<VirtualColumnLayoutProps>;
|
|
37
|
+
export default VirtualColumn as component<+TItem extends Item>(
|
|
38
|
+
children: (item: TItem, key: string) => React.Node,
|
|
39
|
+
items: VirtualCollection<TItem>,
|
|
40
|
+
itemToKey?: (TItem) => string,
|
|
41
|
+
removeClippedSubviews?: boolean,
|
|
42
|
+
testID?: ?string,
|
|
43
|
+
);
|