react-native 0.0.0-16bb2ae4f → 0.0.0-18697adec
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/ActionSheetIOS/ActionSheetIOS.js +14 -1
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -0
- package/Libraries/Animated/AnimatedEvent.js +23 -4
- package/Libraries/Animated/NativeAnimatedHelper.js +3 -3
- package/Libraries/BatchedBridge/MessageQueue.js +10 -10
- package/Libraries/Blob/FileReader.js +1 -1
- package/Libraries/Blob/React-RCTBlob.podspec +1 -1
- package/Libraries/Blob/URL.js +1 -1
- package/Libraries/Components/Button.js +3 -0
- package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +3 -6
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -7
- package/Libraries/Components/ScrollView/ScrollView.js +14 -5
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -0
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +268 -252
- package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -0
- package/Libraries/Components/StatusBar/StatusBar.js +6 -14
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +2 -3
- package/Libraries/Components/TextInput/AndroidTextInputViewConfig.js +1 -0
- package/Libraries/Components/TextInput/TextInput.js +27 -1
- package/Libraries/Components/TextInput/TextInputState.js +1 -1
- package/Libraries/Components/View/ViewAccessibility.js +1 -0
- package/Libraries/Core/ExceptionsManager.js +3 -1
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Core/Timers/JSTimers.js +37 -28
- package/Libraries/Core/Timers/immediateShim.js +67 -0
- package/Libraries/Core/Timers/queueMicrotask.js +41 -0
- package/Libraries/Core/polyfillPromise.js +1 -1
- package/Libraries/Core/setUpBatchedBridge.js +1 -1
- package/Libraries/Core/setUpGlobals.js +2 -0
- package/Libraries/Core/setUpRegeneratorRuntime.js +25 -8
- package/Libraries/Core/setUpTimers.js +65 -6
- package/Libraries/DeprecatedPropTypes/DeprecatedTextInputPropTypes.js +1 -1
- package/Libraries/Image/Image.ios.js +6 -0
- package/Libraries/Image/ImageBackground.js +10 -8
- package/Libraries/Image/ImageProps.js +28 -0
- package/Libraries/Image/ImageSource.js +1 -1
- package/Libraries/Image/React-RCTImage.podspec +1 -1
- package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
- package/Libraries/Lists/FlatList.js +43 -26
- package/Libraries/Lists/VirtualizedList.js +3 -1
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +4 -4
- package/Libraries/LogBox/Data/LogBoxData.js +18 -18
- package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
- package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m +0 -3
- package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +6 -3
- package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.h +1 -2
- package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +17 -11
- package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
- package/Libraries/Network/React-RCTNetwork.podspec +1 -1
- package/Libraries/Network/XMLHttpRequest.js +3 -1
- package/Libraries/NewAppScreen/components/logo.png +0 -0
- package/Libraries/Performance/QuickPerformanceLogger.js +2 -1
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +2 -0
- package/Libraries/Pressability/Pressability.js +1 -0
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -0
- package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +0 -1
- package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
- package/Libraries/ReactNative/AppRegistry.js +1 -1
- package/Libraries/ReactNative/PaperUIManager.js +1 -0
- package/Libraries/ReactNative/renderApplication.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
- package/Libraries/Reliability/UserFlow.js +7 -0
- package/Libraries/Renderer/REVISION +1 -1
- package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +4485 -3842
- package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +2060 -1709
- package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +2148 -1796
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +4264 -3695
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +1303 -1063
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +1374 -1139
- package/Libraries/Renderer/shims/ReactFabric.js +3 -1
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
- package/Libraries/Renderer/shims/ReactNative.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
- package/Libraries/Settings/React-RCTSettings.podspec +1 -1
- package/Libraries/StyleSheet/normalizeColor.js +2 -2
- package/Libraries/Text/Text.js +11 -0
- package/Libraries/Text/TextInput/RCTBaseTextInputView.m +2 -12
- package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m +4 -11
- package/Libraries/Text/TextProps.js +1 -7
- package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
- package/Libraries/TypeSafety/RCTTypeSafety.podspec +1 -1
- package/Libraries/UTFSequence.js +1 -1
- package/Libraries/Utilities/Dimensions.js +9 -14
- package/Libraries/Utilities/FeatureDetection.js +31 -0
- package/Libraries/Utilities/HMRClient.js +10 -6
- package/Libraries/Utilities/MatrixMath.js +1 -1
- package/Libraries/Utilities/NativeDeviceInfo.js +1 -1
- package/Libraries/Utilities/deprecatedPropType.js +2 -2
- package/Libraries/Utilities/useWindowDimensions.js +7 -2
- package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
- package/Libraries/vendor/emitter/_EventSubscriptionVendor.js +1 -1
- package/React/Base/RCTBridge+Private.h +8 -0
- package/React/Base/RCTBridge.h +13 -0
- package/React/Base/RCTBridge.m +30 -7
- package/React/Base/RCTBridgeModule.h +3 -12
- package/React/Base/RCTBundleURLProvider.h +26 -1
- package/React/Base/RCTBundleURLProvider.mm +79 -15
- package/React/Base/RCTConstants.h +6 -7
- package/React/Base/RCTConstants.m +12 -12
- package/React/Base/RCTConvert.h +1 -1
- package/React/Base/RCTConvert.m +1 -1
- package/React/Base/RCTCxxConvert.h +1 -1
- package/React/Base/RCTDefines.h +12 -3
- package/React/Base/RCTEventDispatcherProtocol.h +2 -0
- package/React/Base/RCTJSThread.h +29 -0
- package/React/Base/RCTJSThread.m +19 -0
- package/React/Base/RCTMultipartStreamReader.m +0 -2
- package/React/Base/RCTRootView.h +15 -0
- package/React/Base/RCTRootView.m +15 -0
- package/React/Base/RCTTouchHandler.m +4 -9
- package/React/Base/RCTUtils.h +3 -0
- package/React/Base/RCTUtils.m +14 -7
- package/React/Base/RCTVersion.m +1 -1
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +11 -0
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +35 -1
- package/React/CoreModules/BUCK +3 -3
- package/React/CoreModules/RCTAccessibilityManager.mm +1 -1
- package/React/CoreModules/RCTActionSheetManager.mm +14 -5
- package/React/CoreModules/RCTAsyncLocalStorage.mm +4 -0
- package/React/CoreModules/RCTDevLoadingView.mm +5 -10
- package/React/CoreModules/RCTDevSettings.mm +12 -10
- package/React/CoreModules/RCTDevSplitBundleLoader.mm +1 -1
- package/React/CoreModules/RCTDeviceInfo.mm +4 -4
- package/React/CoreModules/RCTEventDispatcher.mm +5 -0
- package/React/CoreModules/RCTLogBox.mm +14 -10
- package/React/CoreModules/RCTPerfMonitor.mm +9 -4
- package/React/CoreModules/RCTRedBox.mm +1 -5
- package/React/CoreModules/React-CoreModules.podspec +1 -1
- package/React/CxxBridge/RCTCxxBridge.mm +18 -1
- package/React/DevSupport/RCTPackagerConnection.h +3 -0
- package/React/DevSupport/RCTPackagerConnection.mm +19 -8
- package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +12 -4
- package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +1 -2
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +64 -62
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +31 -11
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +6 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +108 -4
- package/React/Fabric/Mounting/RCTComponentViewFactory.mm +1 -0
- package/React/Fabric/Mounting/RCTMountingManager.h +3 -0
- package/React/Fabric/Mounting/RCTMountingManager.mm +22 -3
- package/React/Fabric/Mounting/UIView+ComponentViewProtocol.h +2 -0
- package/React/Fabric/Mounting/UIView+ComponentViewProtocol.mm +12 -0
- package/React/Fabric/RCTConversions.h +3 -0
- package/React/Fabric/RCTScheduler.mm +12 -5
- package/React/Fabric/RCTSurfacePresenter.mm +6 -7
- package/React/Fabric/RCTSurfacePresenterBridgeAdapter.h +1 -1
- package/React/Fabric/RCTSurfaceRegistry.h +1 -1
- package/React/Fabric/RCTSurfaceTouchHandler.mm +6 -20
- package/React/Fabric/Surface/RCTFabricSurface.mm +3 -0
- package/React/Modules/RCTI18nUtil.h +14 -6
- package/React/Modules/RCTI18nUtil.m +1 -47
- package/React/Profiler/RCTProfileTrampoline-arm.S +1 -1
- package/React/Profiler/RCTProfileTrampoline-arm64.S +2 -2
- package/React/React-RCTFabric.podspec +1 -1
- package/React/Views/RCTFont.mm +54 -38
- package/React/Views/RCTModalHostView.h +1 -1
- package/React/Views/RCTModalHostView.m +16 -0
- package/React/Views/RCTModalHostViewManager.m +1 -0
- package/React/Views/RCTView.m +2 -7
- package/React/Views/RCTViewManager.m +4 -2
- package/React/Views/SafeAreaView/RCTSafeAreaView.m +1 -5
- package/React/Views/ScrollView/RCTScrollView.h +1 -0
- package/React/Views/ScrollView/RCTScrollView.m +111 -36
- package/React/Views/ScrollView/RCTScrollViewManager.m +1 -7
- package/React/Views/UIView+React.m +2 -11
- package/React-Core.podspec +1 -1
- package/ReactAndroid/Android-prebuilt.mk +8 -0
- package/ReactAndroid/README.md +1 -1
- package/ReactAndroid/build.gradle +12 -5
- package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/BUCK +1 -1
- package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppInstrumentationTestCase.java +1 -1
- package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/idledetection/BUCK +1 -1
- package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/rule/BUCK +5 -5
- package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +0 -1
- package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/core/BUCK +5 -5
- package/ReactAndroid/src/androidTest/js/BUCK +26 -0
- package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -7
- package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/Android.mk +2 -2
- package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/Android.mk +4 -4
- package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutorFactory.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/RuntimeConfig.java +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactAndroidHWInputDeviceHelper.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +6 -2
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +89 -44
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +28 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +13 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +5 -4
- package/ReactAndroid/src/main/java/com/facebook/react/animated/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/BackgroundExecutor.java +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +11 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java +37 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.java +22 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +3 -6
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContextBaseJavaModule.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/{ReactSoftException.java → ReactSoftExceptionLogger.java} +8 -3
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.java +8 -7
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java +10 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +32 -4
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +97 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +9 -58
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +14 -9
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +3 -72
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.java +100 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +10 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.java +4 -3
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +64 -31
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +54 -10
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +7 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +14 -6
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +40 -11
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEvent.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/Android.mk +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/Android.mk +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/bundleloader/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/camera/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.java +10 -6
- package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +7 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/image/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/share/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/sound/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/storage/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/BUCK +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/toast/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +11 -9
- package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -1
- package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -5
- package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/TurboModuleManager.java +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.cpp +39 -11
- package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.h +9 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.java +7 -28
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/PixelUtil.java +1 -6
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +25 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +162 -66
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java +9 -9
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +6 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java +16 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +12 -20
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +14 -13
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +21 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.java +7 -11
- package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/BUCK +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +9 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +24 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEvent.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/slider/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderManager.java +4 -7
- package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/BUCK +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +23 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +8 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +31 -12
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +31 -11
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/BUCK +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +14 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +114 -62
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +39 -8
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +24 -3
- package/ReactAndroid/src/main/jni/react/jni/Android.mk +5 -3
- package/ReactAndroid/src/main/jni/react/jni/BUCK +5 -2
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +61 -0
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +8 -0
- package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
- package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +25 -0
- package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.cpp +21 -0
- package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.h +28 -0
- package/{ReactCommon/react/renderer/core/Constants.cpp → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +6 -8
- package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
- package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
- package/ReactAndroid/src/main/jni/third-party/libevent/Android.mk +0 -1
- package/ReactAndroid/src/main/third-party/android/androidx/BUCK +63 -2
- package/ReactAndroid/src/main/third-party/java/testing-support-lib/BUCK +0 -31
- package/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.java +1 -0
- package/ReactAndroid/src/test/java/com/facebook/react/modules/BUCK +1 -0
- package/ReactAndroid/src/test/java/com/facebook/react/modules/deviceinfo/DeviceInfoModuleTest.java +168 -0
- package/ReactCommon/React-Fabric.podspec +10 -1
- package/ReactCommon/ReactCommon.podspec +2 -1
- package/ReactCommon/callinvoker/BUCK +2 -2
- package/ReactCommon/callinvoker/React-callinvoker.podspec +1 -1
- package/ReactCommon/cxxreact/Android.mk +2 -1
- package/ReactCommon/cxxreact/BUCK +1 -0
- package/ReactCommon/cxxreact/CxxNativeModule.cpp +28 -0
- package/ReactCommon/cxxreact/CxxNativeModule.h +9 -0
- package/ReactCommon/cxxreact/React-cxxreact.podspec +2 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/hermes/React-hermes.podspec +1 -1
- package/ReactCommon/hermes/executor/Android.mk +4 -4
- package/ReactCommon/hermes/inspector/Android.mk +1 -2
- package/ReactCommon/hermes/inspector/tools/msggen/package.json +7 -4
- package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +13 -10
- package/ReactCommon/jsi/Android.mk +1 -1
- package/ReactCommon/jsi/BUCK +0 -2
- package/ReactCommon/jsi/React-jsi.podspec +1 -1
- package/ReactCommon/jsiexecutor/Android.mk +2 -2
- package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +1 -1
- package/ReactCommon/logger/Android.mk +23 -0
- package/ReactCommon/logger/BUCK +43 -0
- package/ReactCommon/logger/React-logger.podspec +40 -0
- package/ReactCommon/logger/react_native_log.cpp +52 -0
- package/ReactCommon/logger/react_native_log.h +33 -0
- package/ReactCommon/react/nativemodule/core/Android.mk +2 -2
- package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.cpp +1 -0
- package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.h +3 -2
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +46 -1
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +10 -0
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +37 -1
- package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +24 -22
- package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h +11 -8
- package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.h +7 -5
- package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.mm +51 -29
- package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +45 -34
- package/ReactCommon/react/nativemodule/samples/BUCK +2 -2
- package/ReactCommon/react/nativemodule/samples/platform/android/Android.mk +1 -1
- package/ReactCommon/react/renderer/animations/BUCK +1 -0
- package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
- package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -27
- package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +920 -1136
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +80 -245
- package/ReactCommon/react/renderer/animations/conversions.h +212 -0
- package/ReactCommon/react/renderer/animations/primitives.h +104 -0
- package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +9 -6
- package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
- package/ReactCommon/react/renderer/animations/utils.h +80 -0
- package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
- package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
- package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +7 -2
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +3 -1
- package/ReactCommon/react/renderer/attributedstring/conversions.h +162 -11
- package/ReactCommon/react/renderer/attributedstring/primitives.h +34 -1
- package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.cpp +2 -2
- package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h +1 -0
- package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +10 -4
- package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.h +4 -1
- package/ReactCommon/react/renderer/componentregistry/componentNameByReactViewName.cpp +2 -1
- package/ReactCommon/react/renderer/components/image/Android.mk +1 -1
- package/ReactCommon/react/renderer/components/image/ImageProps.cpp +28 -9
- package/ReactCommon/react/renderer/components/image/ImageProps.h +5 -1
- package/ReactCommon/react/renderer/components/image/conversions.h +9 -2
- package/ReactCommon/react/renderer/components/inputaccessory/BUCK +1 -1
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +1 -1
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +0 -1
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.cpp +2 -1
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h +2 -0
- package/ReactCommon/react/renderer/components/root/RootProps.cpp +12 -2
- package/ReactCommon/react/renderer/components/root/RootProps.h +6 -1
- package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +2 -1
- package/ReactCommon/react/renderer/components/root/RootShadowNode.h +2 -0
- package/ReactCommon/react/renderer/components/root/tests/RootShadowNodeTest.cpp +8 -4
- package/ReactCommon/react/renderer/components/safeareaview/BUCK +1 -1
- package/ReactCommon/react/renderer/components/scrollview/Android.mk +1 -1
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +45 -4
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +5 -1
- package/ReactCommon/react/renderer/components/scrollview/conversions.h +5 -0
- package/ReactCommon/react/renderer/components/text/Android.mk +1 -1
- package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +32 -0
- package/ReactCommon/react/renderer/components/text/BaseTextProps.h +5 -1
- package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -16
- package/ReactCommon/react/renderer/components/text/ParagraphProps.cpp +10 -4
- package/ReactCommon/react/renderer/components/text/ParagraphProps.h +5 -1
- package/ReactCommon/react/renderer/components/text/RawTextProps.cpp +3 -2
- package/ReactCommon/react/renderer/components/text/RawTextProps.h +5 -1
- package/ReactCommon/react/renderer/components/text/RawTextShadowNode.h +0 -6
- package/ReactCommon/react/renderer/components/text/TextProps.cpp +6 -3
- package/ReactCommon/react/renderer/components/text/TextProps.h +5 -1
- package/ReactCommon/react/renderer/components/text/TextShadowNode.h +0 -6
- package/ReactCommon/react/renderer/components/textinput/Android.mk +1 -1
- package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +58 -91
- package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +10 -6
- package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.cpp +46 -22
- package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.h +6 -5
- package/ReactCommon/react/renderer/components/textinput/iostextinput/conversions.h +15 -3
- package/ReactCommon/react/renderer/components/textinput/iostextinput/primitives.h +6 -0
- package/ReactCommon/react/renderer/components/textinput/iostextinput/propsConversions.h +63 -2
- package/ReactCommon/react/renderer/components/unimplementedview/Android.mk +1 -1
- package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +4 -2
- package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h +5 -2
- package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewProps.h +1 -0
- package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +21 -0
- package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +24 -1
- package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +3 -0
- package/ReactCommon/react/renderer/components/view/Android.mk +3 -2
- package/ReactCommon/react/renderer/components/view/BUCK +1 -0
- package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
- package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -22
- package/ReactCommon/react/renderer/components/view/ViewProps.cpp +62 -14
- package/ReactCommon/react/renderer/components/view/ViewProps.h +7 -1
- package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +2 -10
- package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +5 -4
- package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
- package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +58 -33
- package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +2 -8
- package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
- package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +2 -0
- package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +62 -8
- package/ReactCommon/react/renderer/components/view/conversions.h +57 -14
- package/ReactCommon/react/renderer/components/view/propsConversions.h +163 -28
- package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +7 -2
- package/ReactCommon/react/renderer/core/Android.mk +1 -1
- package/ReactCommon/react/renderer/core/ComponentDescriptor.h +5 -2
- package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +19 -21
- package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +4 -0
- package/ReactCommon/react/renderer/core/EventDispatcher.cpp +12 -31
- package/ReactCommon/react/renderer/core/EventDispatcher.h +1 -4
- package/ReactCommon/react/renderer/core/LayoutableShadowNode.h +0 -6
- package/ReactCommon/react/renderer/core/Props.cpp +10 -2
- package/ReactCommon/react/renderer/core/Props.h +6 -1
- package/ReactCommon/react/renderer/core/PropsParserContext.h +29 -0
- package/ReactCommon/react/renderer/core/RawProps.cpp +2 -1
- package/ReactCommon/react/renderer/core/RawProps.h +3 -1
- package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
- package/ReactCommon/react/renderer/core/RawPropsParser.h +11 -2
- package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +7 -10
- package/ReactCommon/react/renderer/core/ShadowNode.h +4 -0
- package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
- package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +11 -1
- package/ReactCommon/react/renderer/core/propsConversions.h +18 -8
- package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +16 -4
- package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +85 -20
- package/ReactCommon/react/renderer/core/tests/TestComponent.h +6 -2
- package/ReactCommon/react/renderer/graphics/Android.mk +5 -2
- package/ReactCommon/react/renderer/graphics/BUCK +12 -1
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +2 -1
- package/ReactCommon/react/renderer/graphics/Transform.cpp +1 -1
- package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
- package/ReactCommon/react/renderer/graphics/conversions.h +34 -19
- package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +67 -0
- package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/PlatformColorParser.h +29 -0
- package/ReactCommon/react/renderer/graphics/platform/ios/Color.h +42 -1
- package/ReactCommon/react/renderer/graphics/platform/ios/PlatformColorParser.h +34 -0
- package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.h +12 -0
- package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.mm +206 -0
- package/ReactCommon/react/renderer/imagemanager/BUCK +1 -1
- package/ReactCommon/react/renderer/imagemanager/platform/ios/RCTSyncImageManager.mm +1 -1
- package/ReactCommon/react/renderer/mapbuffer/BUCK +2 -2
- package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
- package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
- package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +6 -2
- package/ReactCommon/react/renderer/mounting/ShadowTree.h +3 -1
- package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
- package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
- package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +12 -1
- package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +8 -1
- package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +10 -3
- package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
- package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +10 -4
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +9 -2
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +30 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +34 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +11 -5
- package/ReactCommon/react/renderer/runtimescheduler/Task.h +5 -3
- package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +34 -0
- package/ReactCommon/react/renderer/{core/Constants.h → scheduler/InspectorData.h} +9 -8
- package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +44 -29
- package/ReactCommon/react/renderer/scheduler/Scheduler.h +14 -0
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +49 -29
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +12 -4
- package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +1 -0
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +22 -0
- package/ReactCommon/react/renderer/timeline/BUCK +6 -6
- package/ReactCommon/react/renderer/uimanager/UIManager.cpp +34 -30
- package/ReactCommon/react/renderer/uimanager/UIManager.h +6 -3
- package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +101 -108
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +4 -7
- package/ReactCommon/react/test_utils/BUCK +3 -0
- package/ReactCommon/react/test_utils/MockSurfaceHandler.h +25 -0
- package/ReactCommon/react/test_utils/shadowTreeGeneration.h +18 -4
- package/ReactCommon/react/utils/Android.mk +3 -1
- package/ReactCommon/react/utils/BUCK +1 -0
- package/ReactCommon/react/utils/ContextContainer.h +0 -27
- package/ReactCommon/reactperflogger/React-perflogger.podspec +1 -1
- package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +1 -1
- package/ReactCommon/runtimeexecutor/ReactCommon/RuntimeExecutor.h +12 -0
- package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar → 0.0.0-18697adec/react-native-0.0.0-18697adec.aar} +0 -0
- package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module → 0.0.0-18697adec/react-native-0.0.0-18697adec.module} +30 -17
- package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.md5 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom → 0.0.0-18697adec/react-native-0.0.0-18697adec.pom} +8 -2
- package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.md5 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha512 +1 -0
- package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
- package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -1
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
- package/flow/HermesInternalType.js +114 -0
- package/flow/global.js +68 -0
- package/index.js +37 -24
- package/jest/renderer.js +3 -7
- package/jest/setup.js +2 -1
- package/package.json +55 -16
- package/react.gradle +19 -13
- package/scripts/generate-specs-cli.js +20 -2
- package/scripts/ios-configure-glog.sh +4 -0
- package/scripts/react-native-xcode.sh +1 -1
- package/scripts/react_native_pods.rb +195 -38
- package/template/_flowconfig +1 -1
- package/template/android/app/build.gradle +2 -2
- package/template/android/build.gradle +1 -2
- package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/template/android/gradle.properties +1 -1
- package/template/ios/HelloWorld.xcodeproj/project.pbxproj +2 -0
- package/template/ios/Podfile +1 -0
- package/template/package.json +3 -4
- package/third-party-podspecs/RCT-Folly.podspec +6 -3
- package/Libraries/BUCK +0 -26
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
- package/Libraries/Components/StaticContainer.react.js +0 -51
- package/Libraries/Components/StatusBar/StatusBarIOS.js +0 -38
- package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
- package/Libraries/Interaction/InteractionMixin.js +0 -54
- package/Libraries/ReactNative/queryLayoutByID.js +0 -58
- package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
- package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -153
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerMode.java +0 -15
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/BUCK +0 -20
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/RuntimeSchedulerManager.java +0 -39
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/Android.mk +0 -34
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/BUCK +0 -35
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/OnLoad.cpp +0 -15
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.cpp +0 -46
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.h +0 -40
- package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.md5 +0 -1
- package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.md5 +0 -1
- package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha512 +0 -1
- package/scripts/generate-specs.sh +0 -100
- package/template/_editorconfig +0 -3
- package/template/_gitattributes +0 -3
|
@@ -86,10 +86,9 @@ static void RCTSendPaperScrollEvent_DEPRECATED(UIScrollView *scrollView, NSInteg
|
|
|
86
86
|
// some other part of the system scrolls scroll view.
|
|
87
87
|
BOOL _isUserTriggeredScrolling;
|
|
88
88
|
|
|
89
|
-
BOOL _isOnDemandViewMountingEnabled;
|
|
90
|
-
|
|
91
89
|
CGPoint _contentOffsetWhenClipped;
|
|
92
90
|
NSMutableArray<UIView<RCTComponentViewProtocol> *> *_childComponentViews;
|
|
91
|
+
BOOL _subviewClippingEnabled;
|
|
93
92
|
}
|
|
94
93
|
|
|
95
94
|
+ (RCTScrollViewComponentView *_Nullable)findScrollViewComponentViewForView:(UIView *)view
|
|
@@ -106,7 +105,6 @@ static void RCTSendPaperScrollEvent_DEPRECATED(UIScrollView *scrollView, NSInteg
|
|
|
106
105
|
static const auto defaultProps = std::make_shared<const ScrollViewProps>();
|
|
107
106
|
_props = defaultProps;
|
|
108
107
|
|
|
109
|
-
_isOnDemandViewMountingEnabled = RCTExperimentGetOnDemandViewMounting();
|
|
110
108
|
_childComponentViews = [[NSMutableArray alloc] init];
|
|
111
109
|
|
|
112
110
|
_scrollView = [[RCTEnhancedScrollView alloc] initWithFrame:self.bounds];
|
|
@@ -115,6 +113,7 @@ static void RCTSendPaperScrollEvent_DEPRECATED(UIScrollView *scrollView, NSInteg
|
|
|
115
113
|
((RCTEnhancedScrollView *)_scrollView).overridingDelegate = self;
|
|
116
114
|
_isUserTriggeredScrolling = NO;
|
|
117
115
|
[self addSubview:_scrollView];
|
|
116
|
+
_subviewClippingEnabled = RCTGetRemoveClippedSubviewsEnabled();
|
|
118
117
|
|
|
119
118
|
_containerView = [[UIView alloc] initWithFrame:CGRectZero];
|
|
120
119
|
[_scrollView addSubview:_containerView];
|
|
@@ -134,6 +133,15 @@ static void RCTSendPaperScrollEvent_DEPRECATED(UIScrollView *scrollView, NSInteg
|
|
|
134
133
|
[self.scrollViewDelegateSplitter removeAllDelegates];
|
|
135
134
|
}
|
|
136
135
|
|
|
136
|
+
- (void)layoutSubviews
|
|
137
|
+
{
|
|
138
|
+
[super layoutSubviews];
|
|
139
|
+
|
|
140
|
+
if (_subviewClippingEnabled) {
|
|
141
|
+
[self _remountChildren];
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
137
145
|
- (RCTGenericDelegateSplitter<id<UIScrollViewDelegate>> *)scrollViewDelegateSplitter
|
|
138
146
|
{
|
|
139
147
|
return ((RCTEnhancedScrollView *)_scrollView).delegateSplitter;
|
|
@@ -327,27 +335,25 @@ static void RCTSendPaperScrollEvent_DEPRECATED(UIScrollView *scrollView, NSInteg
|
|
|
327
335
|
|
|
328
336
|
- (void)mountChildComponentView:(UIView<RCTComponentViewProtocol> *)childComponentView index:(NSInteger)index
|
|
329
337
|
{
|
|
330
|
-
if (
|
|
331
|
-
[_childComponentViews insertObject:childComponentView atIndex:index];
|
|
332
|
-
} else {
|
|
338
|
+
if (_subviewClippingEnabled) {
|
|
333
339
|
[_containerView insertSubview:childComponentView atIndex:index];
|
|
340
|
+
} else {
|
|
341
|
+
[_childComponentViews insertObject:childComponentView atIndex:index];
|
|
334
342
|
}
|
|
335
343
|
}
|
|
336
344
|
|
|
337
345
|
- (void)unmountChildComponentView:(UIView<RCTComponentViewProtocol> *)childComponentView index:(NSInteger)index
|
|
338
346
|
{
|
|
339
|
-
if (
|
|
347
|
+
if (!_subviewClippingEnabled) {
|
|
340
348
|
RCTAssert(
|
|
341
349
|
[_childComponentViews objectAtIndex:index] == childComponentView,
|
|
342
350
|
@"Attempt to unmount improperly mounted component view.");
|
|
343
351
|
[_childComponentViews removeObjectAtIndex:index];
|
|
344
|
-
// In addition to removing a view from `_childComponentViews`,
|
|
345
|
-
// we have to unmount views immediately to not mess with recycling.
|
|
346
|
-
[childComponentView removeFromSuperview];
|
|
347
|
-
} else {
|
|
348
|
-
RCTAssert(childComponentView.superview == _containerView, @"Attempt to unmount improperly mounted component view.");
|
|
349
|
-
[childComponentView removeFromSuperview];
|
|
350
352
|
}
|
|
353
|
+
|
|
354
|
+
// In addition to removing a view from `_childComponentViews`,
|
|
355
|
+
// we have to unmount views immediately to not mess with recycling.
|
|
356
|
+
[childComponentView removeFromSuperview];
|
|
351
357
|
}
|
|
352
358
|
|
|
353
359
|
/*
|
|
@@ -607,10 +613,6 @@ static void RCTSendPaperScrollEvent_DEPRECATED(UIScrollView *scrollView, NSInteg
|
|
|
607
613
|
|
|
608
614
|
- (void)_remountChildrenIfNeeded
|
|
609
615
|
{
|
|
610
|
-
if (!_isOnDemandViewMountingEnabled) {
|
|
611
|
-
return;
|
|
612
|
-
}
|
|
613
|
-
|
|
614
616
|
CGPoint contentOffset = _scrollView.contentOffset;
|
|
615
617
|
|
|
616
618
|
if (std::abs(_contentOffsetWhenClipped.x - contentOffset.x) < kClippingLeeway &&
|
|
@@ -625,68 +627,68 @@ static void RCTSendPaperScrollEvent_DEPRECATED(UIScrollView *scrollView, NSInteg
|
|
|
625
627
|
|
|
626
628
|
- (void)_remountChildren
|
|
627
629
|
{
|
|
628
|
-
if (
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
630
|
+
if (_subviewClippingEnabled) {
|
|
631
|
+
[_scrollView updateClippedSubviewsWithClipRect:CGRectInset(_scrollView.bounds, -kClippingLeeway, -kClippingLeeway)
|
|
632
|
+
relativeToView:_scrollView];
|
|
633
|
+
} else {
|
|
634
|
+
CGRect visibleFrame = [_scrollView convertRect:_scrollView.bounds toView:_containerView];
|
|
635
|
+
visibleFrame = CGRectInset(visibleFrame, -kClippingLeeway, -kClippingLeeway);
|
|
636
|
+
|
|
637
|
+
// `zoomScale` is negative in RTL. Absolute value is needed.
|
|
638
|
+
CGFloat scale = 1.0 / std::abs(_scrollView.zoomScale);
|
|
639
|
+
visibleFrame.origin.x *= scale;
|
|
640
|
+
visibleFrame.origin.y *= scale;
|
|
641
|
+
visibleFrame.size.width *= scale;
|
|
642
|
+
visibleFrame.size.height *= scale;
|
|
642
643
|
#ifndef NDEBUG
|
|
643
|
-
|
|
644
|
+
NSMutableArray<UIView<RCTComponentViewProtocol> *> *expectedSubviews = [NSMutableArray new];
|
|
644
645
|
#endif
|
|
645
646
|
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
647
|
+
NSInteger mountedIndex = 0;
|
|
648
|
+
for (UIView *componentView in _childComponentViews) {
|
|
649
|
+
BOOL shouldBeMounted = YES;
|
|
650
|
+
BOOL isMounted = componentView.superview != nil;
|
|
650
651
|
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
652
|
+
// It's simpler and faster to not mess with views that are not `RCTViewComponentView` subclasses.
|
|
653
|
+
if ([componentView isKindOfClass:[RCTViewComponentView class]]) {
|
|
654
|
+
RCTViewComponentView *viewComponentView = (RCTViewComponentView *)componentView;
|
|
655
|
+
auto layoutMetrics = viewComponentView->_layoutMetrics;
|
|
655
656
|
|
|
656
|
-
|
|
657
|
-
|
|
657
|
+
if (layoutMetrics.overflowInset == EdgeInsets{}) {
|
|
658
|
+
shouldBeMounted = CGRectIntersectsRect(visibleFrame, componentView.frame);
|
|
659
|
+
}
|
|
658
660
|
}
|
|
659
|
-
}
|
|
660
661
|
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
662
|
+
if (shouldBeMounted != isMounted) {
|
|
663
|
+
if (shouldBeMounted) {
|
|
664
|
+
[_containerView insertSubview:componentView atIndex:mountedIndex];
|
|
665
|
+
} else {
|
|
666
|
+
[componentView removeFromSuperview];
|
|
667
|
+
}
|
|
666
668
|
}
|
|
667
|
-
}
|
|
668
669
|
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
670
|
+
if (shouldBeMounted) {
|
|
671
|
+
mountedIndex++;
|
|
672
|
+
}
|
|
672
673
|
|
|
673
674
|
#ifndef NDEBUG
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
675
|
+
if (shouldBeMounted) {
|
|
676
|
+
[expectedSubviews addObject:componentView];
|
|
677
|
+
}
|
|
677
678
|
#endif
|
|
678
|
-
|
|
679
|
+
}
|
|
679
680
|
|
|
680
681
|
#ifndef NDEBUG
|
|
681
|
-
RCTAssert(
|
|
682
|
-
_containerView.subviews.count == expectedSubviews.count,
|
|
683
|
-
@"-[RCTScrollViewComponentView _remountChildren]: Inconsistency detected.");
|
|
684
|
-
for (NSInteger i = 0; i < expectedSubviews.count; i++) {
|
|
685
682
|
RCTAssert(
|
|
686
|
-
|
|
683
|
+
_containerView.subviews.count == expectedSubviews.count,
|
|
687
684
|
@"-[RCTScrollViewComponentView _remountChildren]: Inconsistency detected.");
|
|
688
|
-
|
|
685
|
+
for (NSInteger i = 0; i < expectedSubviews.count; i++) {
|
|
686
|
+
RCTAssert(
|
|
687
|
+
[_containerView.subviews objectAtIndex:i] == [expectedSubviews objectAtIndex:i],
|
|
688
|
+
@"-[RCTScrollViewComponentView _remountChildren]: Inconsistency detected.");
|
|
689
|
+
}
|
|
689
690
|
#endif
|
|
691
|
+
}
|
|
690
692
|
}
|
|
691
693
|
|
|
692
694
|
#pragma mark - RCTScrollableProtocol
|
|
@@ -89,6 +89,7 @@ using namespace facebook::react;
|
|
|
89
89
|
}
|
|
90
90
|
_didMoveToWindow = YES;
|
|
91
91
|
}
|
|
92
|
+
[self _restoreTextSelection];
|
|
92
93
|
}
|
|
93
94
|
|
|
94
95
|
#pragma mark - RCTViewComponentView overrides
|
|
@@ -208,7 +209,6 @@ using namespace facebook::react;
|
|
|
208
209
|
if (newTextInputProps.inputAccessoryViewID != oldTextInputProps.inputAccessoryViewID) {
|
|
209
210
|
_backedTextInputView.inputAccessoryViewID = RCTNSStringFromString(newTextInputProps.inputAccessoryViewID);
|
|
210
211
|
}
|
|
211
|
-
|
|
212
212
|
[super updateProps:props oldProps:oldProps];
|
|
213
213
|
|
|
214
214
|
[self setDefaultInputAccessoryView];
|
|
@@ -526,19 +526,39 @@ using namespace facebook::react;
|
|
|
526
526
|
return AttributedString::Range{(int)start, (int)(end - start)};
|
|
527
527
|
}
|
|
528
528
|
|
|
529
|
-
- (void)
|
|
529
|
+
- (void)_restoreTextSelection
|
|
530
530
|
{
|
|
531
|
-
|
|
532
|
-
if (
|
|
533
|
-
|
|
531
|
+
const auto selection = std::dynamic_pointer_cast<TextInputProps const>(_props)->selection.get_pointer();
|
|
532
|
+
if (selection == nullptr) {
|
|
533
|
+
return;
|
|
534
534
|
}
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
535
|
+
auto start = [_backedTextInputView positionFromPosition:_backedTextInputView.beginningOfDocument
|
|
536
|
+
offset:selection->start];
|
|
537
|
+
auto end = [_backedTextInputView positionFromPosition:_backedTextInputView.beginningOfDocument offset:selection->end];
|
|
538
|
+
auto range = [_backedTextInputView textRangeFromPosition:start toPosition:end];
|
|
539
|
+
[_backedTextInputView setSelectedTextRange:range notifyDelegate:YES];
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
- (void)_setAttributedString:(NSAttributedString *)attributedString
|
|
543
|
+
{
|
|
544
|
+
if ([self _textOf:attributedString equals:_backedTextInputView.attributedText]) {
|
|
545
|
+
return;
|
|
541
546
|
}
|
|
547
|
+
UITextRange *selectedRange = _backedTextInputView.selectedTextRange;
|
|
548
|
+
NSInteger oldTextLength = _backedTextInputView.attributedText.string.length;
|
|
549
|
+
_backedTextInputView.attributedText = attributedString;
|
|
550
|
+
if (selectedRange.empty) {
|
|
551
|
+
// Maintaining a cursor position relative to the end of the old text.
|
|
552
|
+
NSInteger offsetStart = [_backedTextInputView offsetFromPosition:_backedTextInputView.beginningOfDocument
|
|
553
|
+
toPosition:selectedRange.start];
|
|
554
|
+
NSInteger offsetFromEnd = oldTextLength - offsetStart;
|
|
555
|
+
NSInteger newOffset = attributedString.string.length - offsetFromEnd;
|
|
556
|
+
UITextPosition *position = [_backedTextInputView positionFromPosition:_backedTextInputView.beginningOfDocument
|
|
557
|
+
offset:newOffset];
|
|
558
|
+
[_backedTextInputView setSelectedTextRange:[_backedTextInputView textRangeFromPosition:position toPosition:position]
|
|
559
|
+
notifyDelegate:YES];
|
|
560
|
+
}
|
|
561
|
+
[self _restoreTextSelection];
|
|
542
562
|
_lastStringStateWasUpdatedWith = attributedString;
|
|
543
563
|
}
|
|
544
564
|
|
|
@@ -69,6 +69,12 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
69
69
|
*/
|
|
70
70
|
@property (nonatomic, assign) UIEdgeInsets hitTestEdgeInsets;
|
|
71
71
|
|
|
72
|
+
/**
|
|
73
|
+
* Flag indicating if subview clipping is enabled for the view.
|
|
74
|
+
* If subview clipping is enabled, subviews that are outside of the viewport may be removed from the view hierachy.
|
|
75
|
+
*/
|
|
76
|
+
@property (nonatomic, readonly) BOOL removeClippedSubviews;
|
|
77
|
+
|
|
72
78
|
/**
|
|
73
79
|
* Enforcing `call super` semantic for overridden methods from `RCTComponentViewProtocol`.
|
|
74
80
|
* The methods update the instance variables.
|
|
@@ -24,14 +24,19 @@ using namespace facebook::react;
|
|
|
24
24
|
CALayer *_borderLayer;
|
|
25
25
|
BOOL _needsInvalidateLayer;
|
|
26
26
|
BOOL _isJSResponder;
|
|
27
|
+
BOOL _removeClippedSubviews;
|
|
28
|
+
NSMutableArray<UIView *> *_reactSubviews;
|
|
27
29
|
NSSet<NSString *> *_Nullable _propKeysManagedByAnimated_DO_NOT_USE_THIS_IS_BROKEN;
|
|
28
30
|
}
|
|
29
31
|
|
|
32
|
+
@synthesize removeClippedSubviews = _removeClippedSubviews;
|
|
33
|
+
|
|
30
34
|
- (instancetype)initWithFrame:(CGRect)frame
|
|
31
35
|
{
|
|
32
36
|
if (self = [super initWithFrame:frame]) {
|
|
33
37
|
static auto const defaultProps = std::make_shared<ViewProps const>();
|
|
34
38
|
_props = defaultProps;
|
|
39
|
+
_reactSubviews = [NSMutableArray new];
|
|
35
40
|
self.multipleTouchEnabled = YES;
|
|
36
41
|
}
|
|
37
42
|
return self;
|
|
@@ -86,6 +91,81 @@ using namespace facebook::react;
|
|
|
86
91
|
return concreteComponentDescriptorProvider<ViewComponentDescriptor>();
|
|
87
92
|
}
|
|
88
93
|
|
|
94
|
+
- (void)mountChildComponentView:(UIView<RCTComponentViewProtocol> *)childComponentView index:(NSInteger)index
|
|
95
|
+
{
|
|
96
|
+
RCTAssert(
|
|
97
|
+
childComponentView.superview == nil,
|
|
98
|
+
@"Attempt to mount already mounted component view. (parent: %@, child: %@, index: %@, existing parent: %@)",
|
|
99
|
+
self,
|
|
100
|
+
childComponentView,
|
|
101
|
+
@(index),
|
|
102
|
+
@([childComponentView.superview tag]));
|
|
103
|
+
|
|
104
|
+
if (_removeClippedSubviews) {
|
|
105
|
+
[_reactSubviews insertObject:childComponentView atIndex:index];
|
|
106
|
+
} else {
|
|
107
|
+
[self insertSubview:childComponentView atIndex:index];
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
- (void)unmountChildComponentView:(UIView<RCTComponentViewProtocol> *)childComponentView index:(NSInteger)index
|
|
112
|
+
{
|
|
113
|
+
if (_removeClippedSubviews) {
|
|
114
|
+
[_reactSubviews removeObjectAtIndex:index];
|
|
115
|
+
} else {
|
|
116
|
+
RCTAssert(
|
|
117
|
+
childComponentView.superview == self,
|
|
118
|
+
@"Attempt to unmount a view which is mounted inside different view. (parent: %@, child: %@, index: %@)",
|
|
119
|
+
self,
|
|
120
|
+
childComponentView,
|
|
121
|
+
@(index));
|
|
122
|
+
RCTAssert(
|
|
123
|
+
(self.subviews.count > index) && [self.subviews objectAtIndex:index] == childComponentView,
|
|
124
|
+
@"Attempt to unmount a view which has a different index. (parent: %@, child: %@, index: %@, actual index: %@, tag at index: %@)",
|
|
125
|
+
self,
|
|
126
|
+
childComponentView,
|
|
127
|
+
@(index),
|
|
128
|
+
@([self.subviews indexOfObject:childComponentView]),
|
|
129
|
+
@([[self.subviews objectAtIndex:index] tag]));
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
[childComponentView removeFromSuperview];
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
- (void)updateClippedSubviewsWithClipRect:(CGRect)clipRect relativeToView:(UIView *)clipView
|
|
136
|
+
{
|
|
137
|
+
if (!_removeClippedSubviews) {
|
|
138
|
+
// Use default behavior if unmounting is disabled
|
|
139
|
+
return [super updateClippedSubviewsWithClipRect:clipRect relativeToView:clipView];
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
if (_reactSubviews.count == 0) {
|
|
143
|
+
// Do nothing if we have no subviews
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
if (CGSizeEqualToSize(self.bounds.size, CGSizeZero)) {
|
|
148
|
+
// Do nothing if layout hasn't happened yet
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// Convert clipping rect to local coordinates
|
|
153
|
+
clipRect = [clipView convertRect:clipRect toView:self];
|
|
154
|
+
|
|
155
|
+
// Mount / unmount views
|
|
156
|
+
for (UIView *view in _reactSubviews) {
|
|
157
|
+
if (CGRectIntersectsRect(clipRect, view.frame)) {
|
|
158
|
+
// View is at least partially visible, so remount it if unmounted
|
|
159
|
+
[self addSubview:view];
|
|
160
|
+
// View is visible, update clipped subviews
|
|
161
|
+
[view updateClippedSubviewsWithClipRect:clipRect relativeToView:self];
|
|
162
|
+
} else if (view.superview) {
|
|
163
|
+
// View is completely outside the clipRect, so unmount it
|
|
164
|
+
[view removeFromSuperview];
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
89
169
|
- (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const &)oldProps
|
|
90
170
|
{
|
|
91
171
|
RCTAssert(props, @"`props` must not be `null`.");
|
|
@@ -113,6 +193,14 @@ using namespace facebook::react;
|
|
|
113
193
|
needsInvalidateLayer = YES;
|
|
114
194
|
}
|
|
115
195
|
|
|
196
|
+
if (RCTGetRemoveClippedSubviewsEnabled() &&
|
|
197
|
+
oldViewProps.removeClippedSubviews != newViewProps.removeClippedSubviews) {
|
|
198
|
+
_removeClippedSubviews = newViewProps.removeClippedSubviews;
|
|
199
|
+
if (_removeClippedSubviews && self.subviews.count > 0) {
|
|
200
|
+
_reactSubviews = [NSMutableArray arrayWithArray:self.subviews];
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
116
204
|
// `backgroundColor`
|
|
117
205
|
if (oldViewProps.backgroundColor != newViewProps.backgroundColor) {
|
|
118
206
|
self.backgroundColor = RCTUIColorFromSharedColor(newViewProps.backgroundColor);
|
|
@@ -243,11 +331,25 @@ using namespace facebook::react;
|
|
|
243
331
|
|
|
244
332
|
// `accessibilityIgnoresInvertColors`
|
|
245
333
|
if (oldViewProps.accessibilityIgnoresInvertColors != newViewProps.accessibilityIgnoresInvertColors) {
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
334
|
+
self.accessibilityIgnoresInvertColors = newViewProps.accessibilityIgnoresInvertColors;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
// `accessibilityValue`
|
|
338
|
+
if (oldViewProps.accessibilityValue != newViewProps.accessibilityValue) {
|
|
339
|
+
if (newViewProps.accessibilityValue.text.hasValue()) {
|
|
340
|
+
self.accessibilityElement.accessibilityValue =
|
|
341
|
+
RCTNSStringFromStringNilIfEmpty(newViewProps.accessibilityValue.text.value());
|
|
342
|
+
} else if (
|
|
343
|
+
newViewProps.accessibilityValue.now.hasValue() && newViewProps.accessibilityValue.min.hasValue() &&
|
|
344
|
+
newViewProps.accessibilityValue.max.hasValue()) {
|
|
345
|
+
CGFloat val = (CGFloat)(newViewProps.accessibilityValue.now.value()) /
|
|
346
|
+
(newViewProps.accessibilityValue.max.value() - newViewProps.accessibilityValue.min.value());
|
|
347
|
+
self.accessibilityElement.accessibilityValue =
|
|
348
|
+
[NSNumberFormatter localizedStringFromNumber:@(val) numberStyle:NSNumberFormatterPercentStyle];
|
|
349
|
+
;
|
|
350
|
+
} else {
|
|
351
|
+
self.accessibilityElement.accessibilityValue = nil;
|
|
249
352
|
}
|
|
250
|
-
#endif
|
|
251
353
|
}
|
|
252
354
|
|
|
253
355
|
// `testId`
|
|
@@ -322,6 +424,8 @@ using namespace facebook::react;
|
|
|
322
424
|
_propKeysManagedByAnimated_DO_NOT_USE_THIS_IS_BROKEN = nil;
|
|
323
425
|
_eventEmitter.reset();
|
|
324
426
|
_isJSResponder = NO;
|
|
427
|
+
_removeClippedSubviews = NO;
|
|
428
|
+
_reactSubviews = [NSMutableArray new];
|
|
325
429
|
}
|
|
326
430
|
|
|
327
431
|
- (void)setPropKeysManagedByAnimated_DO_NOT_USE_THIS_IS_BROKEN:(NSSet<NSString *> *_Nullable)props
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
#import <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
|
|
18
18
|
#import <react/renderer/componentregistry/componentNameByReactViewName.h>
|
|
19
19
|
#import <react/renderer/componentregistry/native/NativeComponentRegistryBinding.h>
|
|
20
|
+
#import <react/renderer/core/PropsParserContext.h>
|
|
20
21
|
#import <react/renderer/core/ReactPrimitives.h>
|
|
21
22
|
|
|
22
23
|
#ifdef RN_DISABLE_OSS_PLUGIN_HEADER
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
#import <react/renderer/core/ReactPrimitives.h>
|
|
14
14
|
#import <react/renderer/mounting/MountingCoordinator.h>
|
|
15
15
|
#import <react/renderer/mounting/ShadowView.h>
|
|
16
|
+
#import <react/utils/ContextContainer.h>
|
|
16
17
|
|
|
17
18
|
NS_ASSUME_NONNULL_BEGIN
|
|
18
19
|
|
|
@@ -26,6 +27,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
26
27
|
@property (nonatomic, weak) id<RCTMountingManagerDelegate> delegate;
|
|
27
28
|
@property (nonatomic, strong) RCTComponentViewRegistry *componentViewRegistry;
|
|
28
29
|
|
|
30
|
+
- (void)setContextContainer:(facebook::react::ContextContainer::Shared)contextContainer;
|
|
31
|
+
|
|
29
32
|
/**
|
|
30
33
|
* Designates the view as a rendering viewport of a React Native surface.
|
|
31
34
|
* The provided view must not have any subviews, and the caller is not supposed to interact with the view hierarchy
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
#import <better/map.h>
|
|
11
11
|
|
|
12
12
|
#import <React/RCTAssert.h>
|
|
13
|
+
#import <React/RCTComponent.h>
|
|
13
14
|
#import <React/RCTFollyConvert.h>
|
|
14
15
|
#import <React/RCTLog.h>
|
|
15
16
|
#import <React/RCTUtils.h>
|
|
@@ -26,6 +27,18 @@
|
|
|
26
27
|
|
|
27
28
|
using namespace facebook::react;
|
|
28
29
|
|
|
30
|
+
static SurfaceId RCTSurfaceIdForView(UIView *view)
|
|
31
|
+
{
|
|
32
|
+
do {
|
|
33
|
+
if (RCTIsReactRootView(@(view.tag))) {
|
|
34
|
+
return view.tag;
|
|
35
|
+
}
|
|
36
|
+
view = view.superview;
|
|
37
|
+
} while (view != nil);
|
|
38
|
+
|
|
39
|
+
return -1;
|
|
40
|
+
}
|
|
41
|
+
|
|
29
42
|
static void RCTPerformMountInstructions(
|
|
30
43
|
ShadowViewMutationList const &mutations,
|
|
31
44
|
RCTComponentViewRegistry *registry,
|
|
@@ -136,6 +149,7 @@ static void RCTPerformMountInstructions(
|
|
|
136
149
|
RCTMountingTransactionObserverCoordinator _observerCoordinator;
|
|
137
150
|
BOOL _transactionInFlight;
|
|
138
151
|
BOOL _followUpTransactionRequired;
|
|
152
|
+
ContextContainer::Shared _contextContainer;
|
|
139
153
|
}
|
|
140
154
|
|
|
141
155
|
- (instancetype)init
|
|
@@ -147,6 +161,11 @@ static void RCTPerformMountInstructions(
|
|
|
147
161
|
return self;
|
|
148
162
|
}
|
|
149
163
|
|
|
164
|
+
- (void)setContextContainer:(ContextContainer::Shared)contextContainer
|
|
165
|
+
{
|
|
166
|
+
_contextContainer = contextContainer;
|
|
167
|
+
}
|
|
168
|
+
|
|
150
169
|
- (void)attachSurfaceToView:(UIView *)view surfaceId:(SurfaceId)surfaceId
|
|
151
170
|
{
|
|
152
171
|
RCTAssertMainQueue();
|
|
@@ -276,8 +295,10 @@ static void RCTPerformMountInstructions(
|
|
|
276
295
|
{
|
|
277
296
|
RCTAssertMainQueue();
|
|
278
297
|
UIView<RCTComponentViewProtocol> *componentView = [_componentViewRegistry findComponentViewWithTag:reactTag];
|
|
298
|
+
SurfaceId surfaceId = RCTSurfaceIdForView(componentView);
|
|
279
299
|
SharedProps oldProps = [componentView props];
|
|
280
|
-
SharedProps newProps = componentDescriptor.cloneProps(
|
|
300
|
+
SharedProps newProps = componentDescriptor.cloneProps(
|
|
301
|
+
PropsParserContext{surfaceId, *_contextContainer.get()}, oldProps, RawProps(convertIdToFollyDynamic(props)));
|
|
281
302
|
|
|
282
303
|
NSSet<NSString *> *propKeys = componentView.propKeysManagedByAnimated_DO_NOT_USE_THIS_IS_BROKEN ?: [NSSet new];
|
|
283
304
|
propKeys = [propKeys setByAddingObjectsFromArray:props.allKeys];
|
|
@@ -290,11 +311,9 @@ static void RCTPerformMountInstructions(
|
|
|
290
311
|
if (props[@"transform"] &&
|
|
291
312
|
!CATransform3DEqualToTransform(
|
|
292
313
|
RCTCATransform3DFromTransformMatrix(newViewProps.transform), componentView.layer.transform)) {
|
|
293
|
-
RCTLogWarn(@"transform was not applied during [RCTViewComponentView updateProps:oldProps:]");
|
|
294
314
|
componentView.layer.transform = RCTCATransform3DFromTransformMatrix(newViewProps.transform);
|
|
295
315
|
}
|
|
296
316
|
if (props[@"opacity"] && componentView.layer.opacity != (float)newViewProps.opacity) {
|
|
297
|
-
RCTLogWarn(@"opacity was not applied during [RCTViewComponentView updateProps:oldProps:]");
|
|
298
317
|
componentView.layer.opacity = newViewProps.opacity;
|
|
299
318
|
}
|
|
300
319
|
}
|
|
@@ -44,6 +44,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
44
44
|
- (void)setPropKeysManagedByAnimated_DO_NOT_USE_THIS_IS_BROKEN:(nullable NSSet<NSString *> *)props;
|
|
45
45
|
- (nullable NSSet<NSString *> *)propKeysManagedByAnimated_DO_NOT_USE_THIS_IS_BROKEN;
|
|
46
46
|
|
|
47
|
+
- (void)updateClippedSubviewsWithClipRect:(CGRect)clipRect relativeToView:(UIView *)clipView;
|
|
48
|
+
|
|
47
49
|
@end
|
|
48
50
|
|
|
49
51
|
NS_ASSUME_NONNULL_END
|
|
@@ -156,4 +156,16 @@ using namespace facebook::react;
|
|
|
156
156
|
return nil;
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
+
- (void)updateClippedSubviewsWithClipRect:(CGRect)clipRect relativeToView:(UIView *)clipView
|
|
160
|
+
{
|
|
161
|
+
clipRect = [clipView convertRect:clipRect toView:self];
|
|
162
|
+
|
|
163
|
+
// Normal views don't support unmounting, so all
|
|
164
|
+
// this does is forward message to our subviews,
|
|
165
|
+
// in case any of those do support it
|
|
166
|
+
for (UIView *subview in self.subviews) {
|
|
167
|
+
[subview updateClippedSubviewsWithClipRect:clipRect relativeToView:self];
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
159
171
|
@end
|
|
@@ -141,6 +141,9 @@ inline UIAccessibilityTraits RCTUIAccessibilityTraitsFromAccessibilityTraits(
|
|
|
141
141
|
if ((accessibilityTraits & AccessibilityTraits::Switch) != AccessibilityTraits::None) {
|
|
142
142
|
result |= AccessibilityTraitSwitch;
|
|
143
143
|
}
|
|
144
|
+
if ((accessibilityTraits & AccessibilityTraits::TabBar) != AccessibilityTraits::None) {
|
|
145
|
+
result |= UIAccessibilityTraitTabBar;
|
|
146
|
+
}
|
|
144
147
|
return result;
|
|
145
148
|
};
|
|
146
149
|
|
|
@@ -110,7 +110,6 @@ class LayoutAnimationDelegateProxy : public LayoutAnimationStatusDelegate, publi
|
|
|
110
110
|
std::shared_ptr<SchedulerDelegateProxy> _delegateProxy;
|
|
111
111
|
std::shared_ptr<LayoutAnimationDelegateProxy> _layoutAnimationDelegateProxy;
|
|
112
112
|
RunLoopObserver::Unique _uiRunLoopObserver;
|
|
113
|
-
BOOL _layoutAnimationsEnabled;
|
|
114
113
|
}
|
|
115
114
|
|
|
116
115
|
- (instancetype)initWithToolbox:(SchedulerToolbox)toolbox
|
|
@@ -118,14 +117,22 @@ class LayoutAnimationDelegateProxy : public LayoutAnimationStatusDelegate, publi
|
|
|
118
117
|
if (self = [super init]) {
|
|
119
118
|
auto reactNativeConfig =
|
|
120
119
|
toolbox.contextContainer->at<std::shared_ptr<const ReactNativeConfig>>("ReactNativeConfig");
|
|
121
|
-
_layoutAnimationsEnabled = reactNativeConfig->getBool("react_fabric:enabled_layout_animations_ios");
|
|
122
120
|
|
|
123
121
|
_delegateProxy = std::make_shared<SchedulerDelegateProxy>((__bridge void *)self);
|
|
124
122
|
|
|
125
|
-
if (
|
|
123
|
+
if (reactNativeConfig->getBool("react_fabric:enabled_layout_animations_ios")) {
|
|
126
124
|
_layoutAnimationDelegateProxy = std::make_shared<LayoutAnimationDelegateProxy>((__bridge void *)self);
|
|
127
|
-
_animationDriver =
|
|
128
|
-
|
|
125
|
+
_animationDriver = std::make_shared<LayoutAnimationDriver>(
|
|
126
|
+
toolbox.runtimeExecutor, toolbox.contextContainer, _layoutAnimationDelegateProxy.get());
|
|
127
|
+
if (reactNativeConfig->getBool("react_fabric:enabled_skip_invalidated_key_frames_ios")) {
|
|
128
|
+
_animationDriver->enableSkipInvalidatedKeyFrames();
|
|
129
|
+
}
|
|
130
|
+
if (reactNativeConfig->getBool("react_fabric:enable_crash_on_missing_component_descriptor")) {
|
|
131
|
+
_animationDriver->enableCrashOnMissingComponentDescriptor();
|
|
132
|
+
}
|
|
133
|
+
if (reactNativeConfig->getBool("react_fabric:enable_simulate_image_props_memory_access")) {
|
|
134
|
+
_animationDriver->enableSimulateImagePropsMemoryAccess();
|
|
135
|
+
}
|
|
129
136
|
_uiRunLoopObserver =
|
|
130
137
|
toolbox.mainRunLoopObserverFactory(RunLoopObserver::Activity::BeforeWaiting, _layoutAnimationDelegateProxy);
|
|
131
138
|
_uiRunLoopObserver->setDelegate(_layoutAnimationDelegateProxy.get());
|
|
@@ -27,9 +27,6 @@
|
|
|
27
27
|
|
|
28
28
|
#import <react/config/ReactNativeConfig.h>
|
|
29
29
|
#import <react/renderer/componentregistry/ComponentDescriptorFactory.h>
|
|
30
|
-
#import <react/renderer/components/root/RootShadowNode.h>
|
|
31
|
-
#import <react/renderer/core/LayoutConstraints.h>
|
|
32
|
-
#import <react/renderer/core/LayoutContext.h>
|
|
33
30
|
#import <react/renderer/runtimescheduler/RuntimeScheduler.h>
|
|
34
31
|
#import <react/renderer/scheduler/AsynchronousEventBeat.h>
|
|
35
32
|
#import <react/renderer/scheduler/SchedulerToolbox.h>
|
|
@@ -96,6 +93,7 @@ static BackgroundExecutor RCTGetBackgroundExecutor()
|
|
|
96
93
|
|
|
97
94
|
_surfaceRegistry = [[RCTSurfaceRegistry alloc] init];
|
|
98
95
|
_mountingManager = [[RCTMountingManager alloc] init];
|
|
96
|
+
_mountingManager.contextContainer = contextContainer;
|
|
99
97
|
_mountingManager.delegate = self;
|
|
100
98
|
|
|
101
99
|
_observers = [NSMutableArray array];
|
|
@@ -127,6 +125,7 @@ static BackgroundExecutor RCTGetBackgroundExecutor()
|
|
|
127
125
|
{
|
|
128
126
|
std::lock_guard<std::mutex> lock(_schedulerLifeCycleMutex);
|
|
129
127
|
_contextContainer = contextContainer;
|
|
128
|
+
_mountingManager.contextContainer = contextContainer;
|
|
130
129
|
}
|
|
131
130
|
|
|
132
131
|
- (RuntimeExecutor)runtimeExecutor
|
|
@@ -252,14 +251,14 @@ static BackgroundExecutor RCTGetBackgroundExecutor()
|
|
|
252
251
|
{
|
|
253
252
|
auto reactNativeConfig = _contextContainer->at<std::shared_ptr<ReactNativeConfig const>>("ReactNativeConfig");
|
|
254
253
|
|
|
255
|
-
if (reactNativeConfig && reactNativeConfig->getBool("react_fabric:scrollview_on_demand_mounting_ios")) {
|
|
256
|
-
RCTExperimentSetOnDemandViewMounting(YES);
|
|
257
|
-
}
|
|
258
|
-
|
|
259
254
|
if (reactNativeConfig && reactNativeConfig->getBool("react_fabric:preemptive_view_allocation_disabled_ios")) {
|
|
260
255
|
RCTExperimentSetPreemptiveViewAllocationDisabled(YES);
|
|
261
256
|
}
|
|
262
257
|
|
|
258
|
+
if (reactNativeConfig && reactNativeConfig->getBool("react_fabric:enable_remove_clipped_subviews_ios")) {
|
|
259
|
+
RCTSetRemoveClippedSubviewsEnabled(YES);
|
|
260
|
+
}
|
|
261
|
+
|
|
263
262
|
auto componentRegistryFactory =
|
|
264
263
|
[factory = wrapManagedObject(_mountingManager.componentViewRegistry.componentViewFactory)](
|
|
265
264
|
EventDispatcher::Weak const &eventDispatcher, ContextContainer::Shared const &contextContainer) {
|
|
@@ -34,7 +34,7 @@ facebook::react::RuntimeExecutor RCTRuntimeExecutorFromBridge(RCTBridge *bridge)
|
|
|
34
34
|
|
|
35
35
|
/*
|
|
36
36
|
* Controls a stored instance of the Bridge. A consumer can re-set the stored Bridge using that method; the class is
|
|
37
|
-
* responsible to coordinate this change with a
|
|
37
|
+
* responsible to coordinate this change with a SurfacePresenter accordingly.
|
|
38
38
|
*/
|
|
39
39
|
@property (nonatomic, weak) RCTBridge *bridge;
|
|
40
40
|
|