react-native 0.66.0 → 0.67.0-rc.2

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.
Files changed (448) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +14 -1
  2. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -0
  3. package/Libraries/Animated/AnimatedEvent.js +23 -4
  4. package/Libraries/Animated/NativeAnimatedHelper.js +2 -2
  5. package/Libraries/Animated/components/AnimatedImage.js +3 -3
  6. package/Libraries/Animated/components/AnimatedScrollView.js +3 -3
  7. package/Libraries/Animated/components/AnimatedText.js +3 -3
  8. package/Libraries/Animated/components/AnimatedView.js +1 -3
  9. package/Libraries/Animated/createAnimatedComponent.js +3 -34
  10. package/Libraries/Components/Button.js +3 -0
  11. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +3 -6
  12. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -7
  13. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +1 -0
  14. package/Libraries/Components/ScrollView/ScrollView.js +17 -16
  15. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +268 -252
  16. package/Libraries/Components/View/View.js +1 -1
  17. package/Libraries/Components/View/ViewAccessibility.js +1 -1
  18. package/Libraries/Core/ExceptionsManager.js +45 -80
  19. package/Libraries/Core/ExtendedError.js +0 -1
  20. package/Libraries/Core/ReactNativeVersion.js +2 -2
  21. package/Libraries/Core/setUpBatchedBridge.js +1 -1
  22. package/Libraries/Core/setUpGlobals.js +2 -4
  23. package/Libraries/Core/setUpTimers.js +2 -2
  24. package/Libraries/Image/Image.ios.js +6 -0
  25. package/Libraries/Image/ImageBackground.js +10 -8
  26. package/Libraries/Image/ImageProps.js +28 -0
  27. package/Libraries/Image/RCTImageView.mm +4 -0
  28. package/Libraries/LogBox/Data/LogBoxData.js +18 -19
  29. package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
  30. package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
  31. package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
  32. package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
  33. package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
  34. package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m +0 -3
  35. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +6 -3
  36. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.h +1 -2
  37. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +2 -1
  38. package/Libraries/NewAppScreen/components/logo.png +0 -0
  39. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -1
  40. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +2 -0
  41. package/Libraries/Pressability/Pressability.js +13 -13
  42. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
  43. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +0 -1
  44. package/Libraries/ReactNative/AppRegistry.js +4 -2
  45. package/Libraries/Renderer/REVISION +1 -1
  46. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +1569 -875
  47. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +529 -319
  48. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +570 -362
  49. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +1592 -891
  50. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +521 -311
  51. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +562 -354
  52. package/Libraries/Share/Share.js +1 -1
  53. package/Libraries/StyleSheet/normalizeColor.js +2 -2
  54. package/Libraries/Text/TextInput/Multiline/RCTUITextView.m +4 -2
  55. package/Libraries/Text/TextInput/RCTBaseTextInputView.m +2 -12
  56. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m +4 -11
  57. package/Libraries/Text/TextProps.js +1 -7
  58. package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
  59. package/Libraries/Utilities/HMRClient.js +1 -1
  60. package/README.md +1 -1
  61. package/React/Base/RCTBridge+Private.h +8 -0
  62. package/React/Base/RCTBridge.h +4 -0
  63. package/React/Base/RCTBridge.m +19 -7
  64. package/React/Base/RCTBridgeModule.h +2 -11
  65. package/React/Base/RCTBundleURLProvider.h +1 -1
  66. package/React/Base/RCTBundleURLProvider.mm +5 -3
  67. package/React/Base/RCTConstants.h +0 -6
  68. package/React/Base/RCTConstants.m +0 -15
  69. package/React/Base/RCTConvert.h +1 -1
  70. package/React/Base/RCTDefines.h +12 -3
  71. package/React/Base/RCTEventDispatcherProtocol.h +2 -0
  72. package/React/Base/RCTJSThread.h +29 -0
  73. package/React/Base/RCTJSThread.m +19 -0
  74. package/React/Base/RCTRootView.h +15 -0
  75. package/React/Base/RCTRootView.m +15 -0
  76. package/React/Base/RCTTouchHandler.m +1 -9
  77. package/React/Base/RCTUtils.h +3 -0
  78. package/React/Base/RCTUtils.m +14 -7
  79. package/React/Base/RCTVersion.m +2 -2
  80. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +11 -0
  81. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +35 -1
  82. package/React/CoreModules/RCTAccessibilityManager+Internal.h +24 -0
  83. package/React/CoreModules/RCTAccessibilityManager.mm +18 -3
  84. package/React/CoreModules/RCTActionSheetManager.mm +14 -5
  85. package/React/CoreModules/RCTAppearance.mm +3 -1
  86. package/React/CoreModules/RCTDevLoadingView.mm +5 -10
  87. package/React/CoreModules/RCTDevSettings.mm +6 -6
  88. package/React/CoreModules/RCTDevSplitBundleLoader.mm +1 -1
  89. package/React/CoreModules/RCTDeviceInfo.mm +4 -4
  90. package/React/CoreModules/RCTEventDispatcher.mm +5 -0
  91. package/React/CoreModules/RCTExceptionsManager.mm +11 -24
  92. package/React/CoreModules/RCTPerfMonitor.mm +9 -4
  93. package/React/CoreModules/RCTRedBox.mm +1 -5
  94. package/React/CxxBridge/RCTCxxBridge.mm +18 -1
  95. package/React/DevSupport/RCTPackagerConnection.h +3 -0
  96. package/React/DevSupport/RCTPackagerConnection.mm +9 -5
  97. package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +11 -3
  98. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +0 -3
  99. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +16 -0
  100. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +6 -0
  101. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +3 -5
  102. package/React/Fabric/Mounting/RCTMountingManager.mm +15 -1
  103. package/React/Fabric/RCTScheduler.mm +12 -5
  104. package/React/Fabric/RCTSurfacePresenter.mm +0 -4
  105. package/React/Fabric/RCTSurfaceTouchHandler.mm +6 -20
  106. package/React/Fabric/Surface/RCTFabricSurface.mm +1 -3
  107. package/React/React-RCTFabric.podspec +0 -1
  108. package/React/Views/RCTFont.mm +54 -38
  109. package/React/Views/RCTView.m +1 -6
  110. package/React/Views/RCTViewManager.m +3 -2
  111. package/React/Views/SafeAreaView/RCTSafeAreaView.m +1 -5
  112. package/React/Views/ScrollView/RCTScrollView.m +5 -15
  113. package/React/Views/ScrollView/RCTScrollViewManager.m +0 -7
  114. package/React/Views/UIView+React.m +2 -11
  115. package/React-Core.podspec +0 -1
  116. package/ReactAndroid/build.gradle +11 -5
  117. package/ReactAndroid/gradle.properties +1 -1
  118. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +0 -1
  119. package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -7
  120. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/BUCK +2 -1
  121. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutor.java +14 -8
  122. package/ReactAndroid/src/main/java/com/facebook/react/BUCK +0 -1
  123. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +7 -0
  124. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +7 -0
  125. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +63 -26
  126. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +50 -2
  127. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +31 -0
  128. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +17 -1
  129. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +2 -0
  130. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +13 -2
  131. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -0
  132. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
  133. package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
  134. package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
  135. package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegate.java +40 -0
  136. package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegateFactory.java +24 -0
  137. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +0 -6
  138. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +16 -0
  139. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -0
  140. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +5 -2
  141. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +102 -0
  142. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +35 -11
  143. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +5 -72
  144. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java +12 -0
  145. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.java +92 -0
  146. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.java +27 -42
  147. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java +14 -0
  148. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +5 -4
  149. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +3 -7
  150. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +41 -2
  151. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +8 -3
  152. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.java +43 -9
  153. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -1
  154. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.cpp +69 -0
  155. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.h +40 -0
  156. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +2 -6
  157. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +84 -32
  158. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +4 -2
  159. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.cpp +20 -2
  160. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.h +2 -1
  161. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +9 -1
  162. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +19 -4
  163. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +6 -2
  164. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/BUCK +2 -1
  165. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutor.java +6 -1
  166. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.java +10 -1
  167. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/BUCK +0 -6
  168. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/BUCK +4 -1
  169. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.java +9 -8
  170. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.java +7 -19
  171. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
  172. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
  173. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +2 -2
  174. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +7 -1
  175. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
  176. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
  177. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
  178. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +8 -8
  179. package/ReactAndroid/src/main/java/com/facebook/react/processing/ReactPropertyProcessor.java +1 -1
  180. package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/jni/BUCK +0 -6
  181. package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -1
  182. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -5
  183. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/BUCK +0 -12
  184. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +1 -1
  185. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +75 -10
  186. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +19 -22
  187. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +42 -0
  188. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +7 -1
  189. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +2 -2
  190. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +7 -0
  191. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +2 -1
  192. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +17 -9
  193. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +43 -8
  194. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventType.java +15 -16
  195. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +108 -19
  196. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +0 -6
  197. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +79 -4
  198. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +5 -0
  199. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +94 -3
  200. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.java +21 -1
  201. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +5 -0
  202. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
  203. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +16 -0
  204. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +9 -1
  205. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -1
  206. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +25 -6
  207. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +25 -5
  208. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
  209. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
  210. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +8 -8
  211. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +19 -0
  212. package/ReactAndroid/src/main/jni/react/jni/Android.mk +3 -2
  213. package/ReactAndroid/src/main/jni/react/jni/BUCK +4 -5
  214. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +49 -7
  215. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +15 -2
  216. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
  217. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +25 -0
  218. package/{ReactCommon/react/renderer/core/Constants.cpp → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +6 -8
  219. package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
  220. package/ReactAndroid/src/main/jni/react/perftests/BUCK +0 -4
  221. package/ReactAndroid/src/main/third-party/android/androidx/BUCK +6 -6
  222. package/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java +43 -0
  223. package/ReactAndroid/src/test/java/com/facebook/react/modules/clipboard/ClipboardModuleTest.java +3 -1
  224. package/ReactCommon/React-Fabric.podspec +9 -1
  225. package/ReactCommon/better/BUCK +0 -6
  226. package/ReactCommon/callinvoker/BUCK +2 -8
  227. package/ReactCommon/cxxreact/BUCK +1 -16
  228. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  229. package/ReactCommon/hermes/inspector/tools/msggen/package.json +7 -4
  230. package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +13 -10
  231. package/ReactCommon/jsi/BUCK +0 -9
  232. package/ReactCommon/jsinspector/BUCK +0 -5
  233. package/ReactCommon/logger/BUCK +0 -5
  234. package/ReactCommon/react/config/BUCK +0 -6
  235. package/ReactCommon/react/debug/BUCK +0 -6
  236. package/ReactCommon/react/nativemodule/core/BUCK +0 -5
  237. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +14 -31
  238. package/ReactCommon/react/nativemodule/samples/BUCK +0 -7
  239. package/ReactCommon/react/renderer/animations/BUCK +1 -4
  240. package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
  241. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -26
  242. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
  243. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +912 -1147
  244. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +80 -245
  245. package/ReactCommon/react/renderer/animations/conversions.h +212 -0
  246. package/ReactCommon/react/renderer/animations/primitives.h +104 -0
  247. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +3 -3
  248. package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
  249. package/ReactCommon/react/renderer/animations/utils.h +80 -0
  250. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  251. package/ReactCommon/react/renderer/attributedstring/BUCK +0 -6
  252. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
  253. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
  254. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +1 -1
  255. package/ReactCommon/react/renderer/attributedstring/conversions.h +58 -3
  256. package/ReactCommon/react/renderer/attributedstring/primitives.h +18 -1
  257. package/ReactCommon/react/renderer/componentregistry/BUCK +0 -6
  258. package/ReactCommon/react/renderer/componentregistry/native/BUCK +0 -6
  259. package/ReactCommon/react/renderer/components/image/BUCK +0 -6
  260. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +0 -2
  261. package/ReactCommon/react/renderer/components/inputaccessory/BUCK +0 -6
  262. package/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryComponentDescriptor.h +0 -4
  263. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +0 -6
  264. package/ReactCommon/react/renderer/components/modal/BUCK +0 -6
  265. package/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h +0 -5
  266. package/ReactCommon/react/renderer/components/progressbar/BUCK +0 -6
  267. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -3
  268. package/ReactCommon/react/renderer/components/root/BUCK +0 -6
  269. package/ReactCommon/react/renderer/components/safeareaview/BUCK +0 -6
  270. package/ReactCommon/react/renderer/components/scrollview/BUCK +0 -6
  271. package/ReactCommon/react/renderer/components/slider/BUCK +0 -6
  272. package/ReactCommon/react/renderer/components/slider/SliderComponentDescriptor.h +0 -3
  273. package/ReactCommon/react/renderer/components/switch/BUCK +0 -6
  274. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -3
  275. package/ReactCommon/react/renderer/components/text/BUCK +0 -6
  276. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -20
  277. package/ReactCommon/react/renderer/components/textinput/BUCK +0 -6
  278. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +0 -3
  279. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +2 -0
  280. package/ReactCommon/react/renderer/components/textinput/iostextinput/BUCK +0 -6
  281. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputComponentDescriptor.h +0 -3
  282. package/ReactCommon/react/renderer/components/unimplementedview/BUCK +0 -6
  283. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +0 -4
  284. package/ReactCommon/react/renderer/components/view/Android.mk +1 -1
  285. package/ReactCommon/react/renderer/components/view/BUCK +0 -6
  286. package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
  287. package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -23
  288. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +2 -3
  289. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +3 -3
  290. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
  291. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +4 -0
  292. package/ReactCommon/react/renderer/core/BUCK +2 -6
  293. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +14 -9
  294. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +1 -10
  295. package/ReactCommon/react/renderer/core/EventEmitter.cpp +9 -4
  296. package/ReactCommon/react/renderer/core/EventEmitter.h +2 -1
  297. package/ReactCommon/react/renderer/core/Props.h +1 -0
  298. package/ReactCommon/react/renderer/core/PropsParserContext.h +3 -2
  299. package/ReactCommon/react/renderer/core/RawEvent.h +7 -5
  300. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
  301. package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
  302. package/ReactCommon/react/renderer/core/ShadowNode.cpp +7 -10
  303. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
  304. package/ReactCommon/react/renderer/debug/BUCK +0 -6
  305. package/ReactCommon/react/renderer/element/BUCK +0 -6
  306. package/ReactCommon/react/renderer/graphics/Android.mk +1 -1
  307. package/ReactCommon/react/renderer/graphics/BUCK +0 -6
  308. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +0 -1
  309. package/ReactCommon/react/renderer/graphics/Transform.cpp +1 -1
  310. package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
  311. package/ReactCommon/react/renderer/imagemanager/BUCK +0 -6
  312. package/ReactCommon/react/renderer/leakchecker/BUCK +0 -6
  313. package/ReactCommon/react/renderer/mapbuffer/BUCK +0 -6
  314. package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
  315. package/ReactCommon/react/renderer/mounting/BUCK +0 -6
  316. package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
  317. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
  318. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
  319. package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
  320. package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -7
  321. package/ReactCommon/react/renderer/runtimescheduler/ErrorUtils.h +36 -0
  322. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +28 -20
  323. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +4 -2
  324. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +4 -3
  325. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +4 -2
  326. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +32 -0
  327. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +36 -0
  328. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
  329. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -3
  330. package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +4 -2
  331. package/ReactCommon/react/renderer/runtimescheduler/Task.h +4 -2
  332. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
  333. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +26 -1
  334. package/ReactCommon/react/renderer/runtimescheduler/tests/StubErrorUtils.h +72 -0
  335. package/ReactCommon/react/renderer/scheduler/BUCK +0 -6
  336. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +1 -4
  337. package/ReactCommon/react/renderer/scheduler/Scheduler.h +1 -1
  338. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +4 -4
  339. package/ReactCommon/react/renderer/telemetry/BUCK +0 -6
  340. package/ReactCommon/react/renderer/templateprocessor/BUCK +0 -6
  341. package/ReactCommon/react/renderer/textlayoutmanager/BUCK +0 -6
  342. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
  343. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +19 -0
  344. package/ReactCommon/react/renderer/timeline/BUCK +6 -12
  345. package/ReactCommon/react/renderer/uimanager/BUCK +0 -6
  346. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
  347. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -2
  348. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +1 -1
  349. package/ReactCommon/react/test_utils/BUCK +3 -6
  350. package/ReactCommon/react/{renderer/core/Constants.h → test_utils/MockSurfaceHandler.h} +9 -7
  351. package/ReactCommon/react/utils/BUCK +0 -6
  352. package/ReactCommon/react/utils/ContextContainer.h +0 -27
  353. package/ReactCommon/reactperflogger/BUCK +0 -4
  354. package/ReactCommon/runtimeexecutor/BUCK +0 -6
  355. package/ReactCommon/yoga/BUCK +1 -5
  356. package/android/com/facebook/react/react-native/{0.66.0/react-native-0.66.0.aar → 0.67.0-rc.2/react-native-0.67.0-rc.2.aar} +0 -0
  357. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.aar.md5 +1 -0
  358. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.aar.sha1 +1 -0
  359. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.aar.sha256 +1 -0
  360. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.aar.sha512 +1 -0
  361. package/android/com/facebook/react/react-native/{0.66.0/react-native-0.66.0.module → 0.67.0-rc.2/react-native-0.67.0-rc.2.module} +16 -17
  362. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.module.md5 +1 -0
  363. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.module.sha1 +1 -0
  364. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.module.sha256 +1 -0
  365. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.module.sha512 +1 -0
  366. package/android/com/facebook/react/react-native/{0.66.0/react-native-0.66.0.pom → 0.67.0-rc.2/react-native-0.67.0-rc.2.pom} +2 -2
  367. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.pom.md5 +1 -0
  368. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.pom.sha1 +1 -0
  369. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.pom.sha256 +1 -0
  370. package/android/com/facebook/react/react-native/0.67.0-rc.2/react-native-0.67.0-rc.2.pom.sha512 +1 -0
  371. package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
  372. package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
  373. package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
  374. package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -1
  375. package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
  376. package/flow/global.js +45 -0
  377. package/index.js +15 -10
  378. package/jest/mockModal.js +31 -0
  379. package/jest/setup.js +5 -3
  380. package/package.json +8 -9
  381. package/react.gradle +53 -18
  382. package/scripts/find-node.sh +13 -0
  383. package/scripts/generate-specs-cli.js +18 -0
  384. package/scripts/ios-configure-glog.sh +4 -0
  385. package/scripts/react-native-xcode.sh +7 -7
  386. package/scripts/react_native_pods.rb +200 -57
  387. package/template/Gemfile +6 -0
  388. package/template/Gemfile.lock +100 -0
  389. package/template/_bundle/config +2 -0
  390. package/template/_flowconfig +1 -1
  391. package/template/_ruby-version +1 -0
  392. package/template/android/app/build.gradle +1 -1
  393. package/template/android/app/src/main/res/drawable/rn_edit_text_material.xml +36 -0
  394. package/template/android/app/src/main/res/values/styles.xml +1 -0
  395. package/template/android/build.gradle +7 -3
  396. package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  397. package/template/android/gradle.properties +1 -1
  398. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -2
  399. package/template/package.json +1 -1
  400. package/third-party-podspecs/RCT-Folly.podspec +1 -1
  401. package/third-party-podspecs/glog.podspec +0 -1
  402. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
  403. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  404. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  405. package/Libraries/Components/StaticContainer.react.js +0 -51
  406. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
  407. package/Libraries/Interaction/InteractionMixin.js +0 -54
  408. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  409. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
  410. package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
  411. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
  412. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
  413. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -153
  414. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerMode.java +0 -15
  415. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
  416. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/BUCK +0 -20
  417. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/RuntimeSchedulerManager.java +0 -39
  418. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/Android.mk +0 -34
  419. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/BUCK +0 -35
  420. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/OnLoad.cpp +0 -15
  421. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.cpp +0 -46
  422. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.h +0 -40
  423. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerDelegate.java +0 -57
  424. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerInterface.java +0 -23
  425. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/BUCK +0 -19
  426. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerDelegate.java +0 -62
  427. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerInterface.java +0 -25
  428. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerDelegate.java +0 -33
  429. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerInterface.java +0 -17
  430. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerDelegate.java +0 -51
  431. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerInterface.java +0 -21
  432. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerDelegate.java +0 -63
  433. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerInterface.java +0 -24
  434. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.aar.md5 +0 -1
  435. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.aar.sha1 +0 -1
  436. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.aar.sha256 +0 -1
  437. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.aar.sha512 +0 -1
  438. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.module.md5 +0 -1
  439. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.module.sha1 +0 -1
  440. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.module.sha256 +0 -1
  441. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.module.sha512 +0 -1
  442. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.pom.md5 +0 -1
  443. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.pom.sha1 +0 -1
  444. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.pom.sha256 +0 -1
  445. package/android/com/facebook/react/react-native/0.66.0/react-native-0.66.0.pom.sha512 +0 -1
  446. package/scripts/generate-specs.sh +0 -99
  447. package/template/_editorconfig +0 -3
  448. package/template/_gitattributes +0 -3
@@ -10,6 +10,7 @@
10
10
  #import <objc/runtime.h>
11
11
 
12
12
  #import "RCTAssert.h"
13
+ #import "RCTBridge+Private.h"
13
14
  #import "RCTBridge.h"
14
15
  #import "RCTLog.h"
15
16
  #import "RCTPerformanceLogger.h"
@@ -48,7 +49,9 @@ static RCTRootViewSizeFlexibility convertToRootViewSizeFlexibility(RCTSurfaceSiz
48
49
  }
49
50
  }
50
51
 
51
- @implementation RCTSurfaceHostingProxyRootView
52
+ @implementation RCTSurfaceHostingProxyRootView {
53
+ RCTModuleRegistry *_moduleRegistry;
54
+ }
52
55
 
53
56
  - (instancetype)initWithBridge:(RCTBridge *)bridge
54
57
  moduleName:(NSString *)moduleName
@@ -93,6 +96,37 @@ static RCTRootViewSizeFlexibility convertToRootViewSizeFlexibility(RCTSurfaceSiz
93
96
  return [self initWithBridge:bridge moduleName:moduleName initialProperties:initialProperties];
94
97
  }
95
98
 
99
+ - (instancetype)initWithSurface:(id<RCTSurfaceProtocol>)surface
100
+ sizeMeasureMode:(RCTSurfaceSizeMeasureMode)sizeMeasureMode
101
+ moduleRegistry:(RCTModuleRegistry *)moduleRegistry
102
+ {
103
+ if (self = [super initWithSurface:surface sizeMeasureMode:sizeMeasureMode]) {
104
+ _moduleRegistry = moduleRegistry;
105
+ }
106
+
107
+ return self;
108
+ }
109
+
110
+ - (BOOL)hasBridge
111
+ {
112
+ return _bridge != nil;
113
+ }
114
+
115
+ - (RCTModuleRegistry *)moduleRegistry
116
+ {
117
+ // In bridgeless mode, RCTSurfaceHostingProxyRootView is created with an RCTModuleRegistry
118
+ if (_moduleRegistry) {
119
+ return _moduleRegistry;
120
+ }
121
+
122
+ return _bridge.moduleRegistry;
123
+ }
124
+
125
+ - (id<RCTEventDispatcherProtocol>)eventDispatcher
126
+ {
127
+ return [self.moduleRegistry moduleForName:"EventDispatcher"];
128
+ }
129
+
96
130
  RCT_NOT_IMPLEMENTED(-(instancetype)initWithFrame : (CGRect)frame)
97
131
  RCT_NOT_IMPLEMENTED(-(instancetype)initWithCoder : (NSCoder *)aDecoder)
98
132
 
@@ -0,0 +1,24 @@
1
+ /*
2
+ * Copyright (c) Facebook, Inc. and its 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
+
8
+ #import "RCTAccessibilityManager.h"
9
+
10
+ #import <React/RCTDefines.h>
11
+
12
+ NS_ASSUME_NONNULL_BEGIN
13
+
14
+ RCT_EXTERN_C_BEGIN
15
+
16
+ // Only to be used for testing and internal tooling. Do not use this in
17
+ // production.
18
+ void RCTAccessibilityManagerSetIsVoiceOverEnabled(
19
+ RCTAccessibilityManager *accessibiltyManager,
20
+ BOOL isVoiceOverEnabled);
21
+
22
+ RCT_EXTERN_C_END
23
+
24
+ NS_ASSUME_NONNULL_END
@@ -6,6 +6,7 @@
6
6
  */
7
7
 
8
8
  #import "RCTAccessibilityManager.h"
9
+ #import "RCTAccessibilityManager+Internal.h"
9
10
 
10
11
  #import <FBReactNativeSpec/FBReactNativeSpec.h>
11
12
  #import <React/RCTBridge.h>
@@ -183,9 +184,14 @@ RCT_EXPORT_MODULE()
183
184
 
184
185
  - (void)voiceVoiceOverStatusDidChange:(__unused NSNotification *)notification
185
186
  {
186
- BOOL newIsVoiceOverEnabled = UIAccessibilityIsVoiceOverRunning();
187
- if (_isVoiceOverEnabled != newIsVoiceOverEnabled) {
188
- _isVoiceOverEnabled = newIsVoiceOverEnabled;
187
+ BOOL isVoiceOverEnabled = UIAccessibilityIsVoiceOverRunning();
188
+ [self _setIsVoiceOverEnabled:isVoiceOverEnabled];
189
+ }
190
+
191
+ - (void)_setIsVoiceOverEnabled:(BOOL)isVoiceOverEnabled
192
+ {
193
+ if (_isVoiceOverEnabled != isVoiceOverEnabled) {
194
+ _isVoiceOverEnabled = isVoiceOverEnabled;
189
195
  #pragma clang diagnostic push
190
196
  #pragma clang diagnostic ignored "-Wdeprecated-declarations"
191
197
  [[_moduleRegistry moduleForName:"EventDispatcher"] sendDeviceEventWithName:@"screenReaderChanged"
@@ -350,6 +356,15 @@ RCT_EXPORT_METHOD(getCurrentVoiceOverState
350
356
  return std::make_shared<facebook::react::NativeAccessibilityManagerSpecJSI>(params);
351
357
  }
352
358
 
359
+ #pragma mark - Internal
360
+
361
+ void RCTAccessibilityManagerSetIsVoiceOverEnabled(
362
+ RCTAccessibilityManager *accessibilityManager,
363
+ BOOL isVoiceOverEnabled)
364
+ {
365
+ [accessibilityManager _setIsVoiceOverEnabled:isVoiceOverEnabled];
366
+ }
367
+
353
368
  @end
354
369
 
355
370
  @implementation RCTBridge (RCTAccessibilityManager)
@@ -94,6 +94,8 @@ RCT_EXPORT_METHOD(showActionSheetWithOptions
94
94
  UIViewController *controller = RCTPresentedViewController();
95
95
  NSNumber *anchor = [RCTConvert NSNumber:options.anchor() ? @(*options.anchor()) : nil];
96
96
  UIColor *tintColor = [RCTConvert UIColor:options.tintColor() ? @(*options.tintColor()) : nil];
97
+ UIColor *cancelButtonTintColor =
98
+ [RCTConvert UIColor:options.cancelButtonTintColor() ? @(*options.cancelButtonTintColor()) : nil];
97
99
 
98
100
  if (controller == nil) {
99
101
  RCTLogError(
@@ -105,6 +107,7 @@ RCT_EXPORT_METHOD(showActionSheetWithOptions
105
107
  @"destructiveButtonIndices" : destructiveButtonIndices,
106
108
  @"anchor" : anchor,
107
109
  @"tintColor" : tintColor,
110
+ @"cancelButtonTintColor" : cancelButtonTintColor,
108
111
  @"disabledButtonIndices" : disabledButtonIndices,
109
112
  });
110
113
  return;
@@ -122,20 +125,26 @@ RCT_EXPORT_METHOD(showActionSheetWithOptions
122
125
  preferredStyle:UIAlertControllerStyleActionSheet];
123
126
 
124
127
  NSInteger index = 0;
128
+ bool isCancelButtonIndex = false;
125
129
  for (NSString *option in buttons) {
126
130
  UIAlertActionStyle style = UIAlertActionStyleDefault;
127
131
  if ([destructiveButtonIndices containsObject:@(index)]) {
128
132
  style = UIAlertActionStyleDestructive;
129
133
  } else if (index == cancelButtonIndex) {
130
134
  style = UIAlertActionStyleCancel;
135
+ isCancelButtonIndex = true;
131
136
  }
132
137
 
133
138
  NSInteger localIndex = index;
134
- [alertController addAction:[UIAlertAction actionWithTitle:option
135
- style:style
136
- handler:^(__unused UIAlertAction *action) {
137
- callback(@[ @(localIndex) ]);
138
- }]];
139
+ UIAlertAction *actionButton = [UIAlertAction actionWithTitle:option
140
+ style:style
141
+ handler:^(__unused UIAlertAction *action) {
142
+ callback(@[ @(localIndex) ]);
143
+ }];
144
+ if (isCancelButtonIndex) {
145
+ [actionButton setValue:cancelButtonTintColor forKey:@"titleTextColor"];
146
+ }
147
+ [alertController addAction:actionButton];
139
148
 
140
149
  index++;
141
150
  }
@@ -89,7 +89,9 @@ RCT_EXPORT_MODULE(Appearance)
89
89
 
90
90
  RCT_EXPORT_SYNCHRONOUS_TYPED_METHOD(NSString *, getColorScheme)
91
91
  {
92
- _currentColorScheme = RCTColorSchemePreference(nil);
92
+ if (_currentColorScheme == nil) {
93
+ _currentColorScheme = RCTColorSchemePreference(nil);
94
+ }
93
95
  return _currentColorScheme;
94
96
  }
95
97
 
@@ -114,16 +114,11 @@ RCT_EXPORT_MODULE()
114
114
  if (!self->_window && !RCTRunningInTestEnvironment()) {
115
115
  CGSize screenSize = [UIScreen mainScreen].bounds.size;
116
116
 
117
- if (@available(iOS 11.0, *)) {
118
- UIWindow *window = RCTSharedApplication().keyWindow;
119
- self->_window =
120
- [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, screenSize.width, window.safeAreaInsets.top + 10)];
121
- self->_label =
122
- [[UILabel alloc] initWithFrame:CGRectMake(0, window.safeAreaInsets.top - 10, screenSize.width, 20)];
123
- } else {
124
- self->_window = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, screenSize.width, 20)];
125
- self->_label = [[UILabel alloc] initWithFrame:self->_window.bounds];
126
- }
117
+ UIWindow *window = RCTSharedApplication().keyWindow;
118
+ self->_window =
119
+ [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, screenSize.width, window.safeAreaInsets.top + 10)];
120
+ self->_label =
121
+ [[UILabel alloc] initWithFrame:CGRectMake(0, window.safeAreaInsets.top - 10, screenSize.width, 20)];
127
122
  [self->_window addSubview:self->_label];
128
123
 
129
124
  self->_window.windowLevel = UIWindowLevelStatusBar + 1;
@@ -32,7 +32,7 @@ static NSString *const kRCTDevSettingIsPerfMonitorShown = @"RCTPerfMonitorKey";
32
32
 
33
33
  static NSString *const kRCTDevSettingsUserDefaultsKey = @"RCTDevMenu";
34
34
 
35
- #if ENABLE_PACKAGER_CONNECTION
35
+ #if RCT_DEV_SETTINGS_ENABLE_PACKAGER_CONNECTION
36
36
  #import <React/RCTPackagerClient.h>
37
37
  #import <React/RCTPackagerConnection.h>
38
38
  #endif
@@ -114,14 +114,14 @@ void RCTDevSettingsSetEnabled(BOOL enabled)
114
114
 
115
115
  @end
116
116
 
117
- #if ENABLE_PACKAGER_CONNECTION
117
+ #if RCT_DEV_SETTINGS_ENABLE_PACKAGER_CONNECTION
118
118
  static RCTHandlerToken reloadToken;
119
119
  static std::atomic<int> numInitializedModules{0};
120
120
  #endif
121
121
 
122
122
  @interface RCTDevSettings () <RCTBridgeModule, RCTInvalidating, NativeDevSettingsSpec, RCTDevSettingsInspectable> {
123
123
  BOOL _isJSLoaded;
124
- #if ENABLE_PACKAGER_CONNECTION
124
+ #if RCT_DEV_SETTINGS_ENABLE_PACKAGER_CONNECTION
125
125
  RCTHandlerToken _bridgeExecutorOverrideToken;
126
126
  #endif
127
127
  }
@@ -174,7 +174,7 @@ RCT_EXPORT_MODULE()
174
174
 
175
175
  - (void)initialize
176
176
  {
177
- #if ENABLE_PACKAGER_CONNECTION
177
+ #if RCT_DEV_SETTINGS_ENABLE_PACKAGER_CONNECTION
178
178
  if (self.bridge) {
179
179
  RCTBridge *__weak weakBridge = self.bridge;
180
180
  _bridgeExecutorOverrideToken = [[RCTPackagerConnection sharedPackagerConnection]
@@ -227,7 +227,7 @@ RCT_EXPORT_MODULE()
227
227
  - (void)invalidate
228
228
  {
229
229
  [super invalidate];
230
- #if ENABLE_PACKAGER_CONNECTION
230
+ #if RCT_DEV_SETTINGS_ENABLE_PACKAGER_CONNECTION
231
231
  if (self.bridge) {
232
232
  [[RCTPackagerConnection sharedPackagerConnection] removeHandler:_bridgeExecutorOverrideToken];
233
233
  }
@@ -440,7 +440,7 @@ RCT_EXPORT_METHOD(addMenuItem : (NSString *)title)
440
440
 
441
441
  - (void)addHandler:(id<RCTPackagerClientMethod>)handler forPackagerMethod:(NSString *)name
442
442
  {
443
- #if ENABLE_PACKAGER_CONNECTION
443
+ #if RCT_DEV_SETTINGS_ENABLE_PACKAGER_CONNECTION
444
444
  [[RCTPackagerConnection sharedPackagerConnection] addHandler:handler forMethod:name];
445
445
  #endif
446
446
  }
@@ -22,7 +22,7 @@ using namespace facebook::react;
22
22
  @interface RCTDevSplitBundleLoader () <NativeDevSplitBundleLoaderSpec>
23
23
  @end
24
24
 
25
- #if RCT_DEV_MENU
25
+ #if RCT_DEV_MENU | RCT_PACKAGER_LOADING_FUNCTIONALITY
26
26
 
27
27
  @implementation RCTDevSplitBundleLoader
28
28
 
@@ -12,6 +12,7 @@
12
12
  #import <React/RCTAssert.h>
13
13
  #import <React/RCTConstants.h>
14
14
  #import <React/RCTEventDispatcherProtocol.h>
15
+ #import <React/RCTInitializing.h>
15
16
  #import <React/RCTUIUtils.h>
16
17
  #import <React/RCTUtils.h>
17
18
 
@@ -19,7 +20,7 @@
19
20
 
20
21
  using namespace facebook::react;
21
22
 
22
- @interface RCTDeviceInfo () <NativeDeviceInfoSpec>
23
+ @interface RCTDeviceInfo () <NativeDeviceInfoSpec, RCTInitializing>
23
24
  @end
24
25
 
25
26
  @implementation RCTDeviceInfo {
@@ -41,13 +42,12 @@ RCT_EXPORT_MODULE()
41
42
  return dispatch_get_main_queue();
42
43
  }
43
44
 
44
- - (void)setModuleRegistry:(RCTModuleRegistry *)moduleRegistry
45
+ - (void)initialize
45
46
  {
46
- _moduleRegistry = moduleRegistry;
47
47
  [[NSNotificationCenter defaultCenter] addObserver:self
48
48
  selector:@selector(didReceiveNewContentSizeMultiplier)
49
49
  name:RCTAccessibilityManagerDidUpdateMultiplierNotification
50
- object:[moduleRegistry moduleForName:"AccessibilityManager"]];
50
+ object:[_moduleRegistry moduleForName:"AccessibilityManager"]];
51
51
 
52
52
  _currentInterfaceOrientation = [RCTSharedApplication() statusBarOrientation];
53
53
 
@@ -56,6 +56,11 @@ RCT_EXPORT_MODULE()
56
56
  _observersLock = [NSLock new];
57
57
  }
58
58
 
59
+ - (void)sendViewEventWithName:(NSString *)name reactTag:(NSNumber *)reactTag
60
+ {
61
+ [_callableJSModules invokeModule:@"RCTViewEventEmitter" method:@"emit" withArgs:@[ name, RCTNullIfNil(reactTag) ]];
62
+ }
63
+
59
64
  - (void)sendAppEventWithName:(NSString *)name body:(id)body
60
65
  {
61
66
  [_callableJSModules invokeModule:@"RCTNativeAppEventEmitter"
@@ -35,15 +35,10 @@ RCT_EXPORT_MODULE()
35
35
  return self;
36
36
  }
37
37
 
38
- - (void)reportSoft:(NSString *)message
39
- stack:(NSArray<NSDictionary *> *)stack
40
- exceptionId:(double)exceptionId
41
- suppressRedBox:(BOOL)suppressRedBox
38
+ - (void)reportSoft:(NSString *)message stack:(NSArray<NSDictionary *> *)stack exceptionId:(double)exceptionId
42
39
  {
43
- if (!suppressRedBox) {
44
- RCTRedBox *redbox = [_moduleRegistry moduleForName:"RedBox"];
45
- [redbox showErrorMessage:message withStack:stack errorCookie:(int)exceptionId];
46
- }
40
+ RCTRedBox *redbox = [_moduleRegistry moduleForName:"RedBox"];
41
+ [redbox showErrorMessage:message withStack:stack errorCookie:(int)exceptionId];
47
42
 
48
43
  if (_delegate) {
49
44
  [_delegate handleSoftJSExceptionWithMessage:message
@@ -52,15 +47,10 @@ RCT_EXPORT_MODULE()
52
47
  }
53
48
  }
54
49
 
55
- - (void)reportFatal:(NSString *)message
56
- stack:(NSArray<NSDictionary *> *)stack
57
- exceptionId:(double)exceptionId
58
- suppressRedBox:(BOOL)suppressRedBox
50
+ - (void)reportFatal:(NSString *)message stack:(NSArray<NSDictionary *> *)stack exceptionId:(double)exceptionId
59
51
  {
60
- if (!suppressRedBox) {
61
- RCTRedBox *redbox = [_moduleRegistry moduleForName:"RedBox"];
62
- [redbox showErrorMessage:message withStack:stack errorCookie:(int)exceptionId];
63
- }
52
+ RCTRedBox *redbox = [_moduleRegistry moduleForName:"RedBox"];
53
+ [redbox showErrorMessage:message withStack:stack errorCookie:(int)exceptionId];
64
54
 
65
55
  if (_delegate) {
66
56
  [_delegate handleFatalJSExceptionWithMessage:message
@@ -72,7 +62,7 @@ RCT_EXPORT_MODULE()
72
62
  if (!RCT_DEBUG && reloadRetries < _maxReloadAttempts) {
73
63
  reloadRetries++;
74
64
  RCTTriggerReloadCommandListeners(@"JS Crash Reload");
75
- } else if (!RCT_DEV || !suppressRedBox) {
65
+ } else if (!RCT_DEV) {
76
66
  NSString *description = [@"Unhandled JS Exception: " stringByAppendingString:message];
77
67
  NSDictionary *errorInfo = @{NSLocalizedDescriptionKey : description, RCTJSStackTraceKey : stack};
78
68
  RCTFatal([NSError errorWithDomain:RCTErrorDomain code:0 userInfo:errorInfo]);
@@ -84,7 +74,7 @@ RCT_EXPORT_METHOD(reportSoftException
84
74
  : (NSArray<NSDictionary *> *)stack exceptionId
85
75
  : (double)exceptionId)
86
76
  {
87
- [self reportSoft:message stack:stack exceptionId:exceptionId suppressRedBox:NO];
77
+ [self reportSoft:message stack:stack exceptionId:exceptionId];
88
78
  }
89
79
 
90
80
  RCT_EXPORT_METHOD(reportFatalException
@@ -92,7 +82,7 @@ RCT_EXPORT_METHOD(reportFatalException
92
82
  : (NSArray<NSDictionary *> *)stack exceptionId
93
83
  : (double)exceptionId)
94
84
  {
95
- [self reportFatal:message stack:stack exceptionId:exceptionId suppressRedBox:NO];
85
+ [self reportFatal:message stack:stack exceptionId:exceptionId];
96
86
  }
97
87
 
98
88
  RCT_EXPORT_METHOD(updateExceptionMessage
@@ -120,7 +110,6 @@ RCT_EXPORT_METHOD(reportException : (JS::NativeExceptionsManager::ExceptionData
120
110
  {
121
111
  NSString *message = data.message();
122
112
  double exceptionId = data.id_();
123
- id<NSObject> extraData = data.extraData();
124
113
 
125
114
  // Reserialize data.stack() into an array of untyped dictionaries.
126
115
  // TODO: (moti) T53588496 Replace `(NSArray<NSDictionary *> *)stack` in
@@ -141,13 +130,11 @@ RCT_EXPORT_METHOD(reportException : (JS::NativeExceptionsManager::ExceptionData
141
130
  }
142
131
  [stackArray addObject:frameDict];
143
132
  }
144
- NSDictionary *dict = (NSDictionary *)extraData;
145
- BOOL suppressRedBox = [[dict objectForKey:@"suppressRedBox"] boolValue];
146
133
 
147
134
  if (data.isFatal()) {
148
- [self reportFatal:message stack:stackArray exceptionId:exceptionId suppressRedBox:suppressRedBox];
135
+ [self reportFatal:message stack:stackArray exceptionId:exceptionId];
149
136
  } else {
150
- [self reportSoft:message stack:stackArray exceptionId:exceptionId suppressRedBox:suppressRedBox];
137
+ [self reportSoft:message stack:stackArray exceptionId:exceptionId];
151
138
  }
152
139
  }
153
140
 
@@ -20,6 +20,7 @@
20
20
  #import <React/RCTBridge+Private.h>
21
21
  #import <React/RCTBridge.h>
22
22
  #import <React/RCTFPSGraph.h>
23
+ #import <React/RCTInitializing.h>
23
24
  #import <React/RCTInvalidating.h>
24
25
  #import <React/RCTJavaScriptExecutor.h>
25
26
  #import <React/RCTPerformanceLogger.h>
@@ -84,8 +85,13 @@ static vm_size_t RCTGetResidentMemorySize(void)
84
85
  return memoryUsageInByte;
85
86
  }
86
87
 
87
- @interface RCTPerfMonitor
88
- : NSObject <RCTBridgeModule, RCTTurboModule, RCTInvalidating, UITableViewDataSource, UITableViewDelegate>
88
+ @interface RCTPerfMonitor : NSObject <
89
+ RCTBridgeModule,
90
+ RCTTurboModule,
91
+ RCTInitializing,
92
+ RCTInvalidating,
93
+ UITableViewDataSource,
94
+ UITableViewDelegate>
89
95
 
90
96
  #if __has_include(<React/RCTDevMenu.h>)
91
97
  @property (nonatomic, strong, readonly) RCTDevMenuItem *devMenuItem;
@@ -150,9 +156,8 @@ RCT_EXPORT_MODULE()
150
156
  return dispatch_get_main_queue();
151
157
  }
152
158
 
153
- - (void)setModuleRegistry:(RCTModuleRegistry *)moduleRegistry
159
+ - (void)initialize
154
160
  {
155
- _moduleRegistry = moduleRegistry;
156
161
  #if __has_include(<React/RCTDevMenu.h>)
157
162
  [(RCTDevMenu *)[_moduleRegistry moduleForName:"DevMenu"] addItem:self.devMenuItem];
158
163
  #endif
@@ -201,11 +201,7 @@
201
201
 
202
202
  - (NSInteger)bottomSafeViewHeight
203
203
  {
204
- if (@available(iOS 11.0, *)) {
205
- return RCTSharedApplication().delegate.window.safeAreaInsets.bottom;
206
- } else {
207
- return 0;
208
- }
204
+ return RCTSharedApplication().delegate.window.safeAreaInsets.bottom;
209
205
  }
210
206
 
211
207
  RCT_NOT_IMPLEMENTED(-(instancetype)initWithCoder : (NSCoder *)aDecoder)
@@ -244,6 +244,11 @@ struct RCTInstanceCallback : public InstanceCallback {
244
244
  @synthesize performanceLogger = _performanceLogger;
245
245
  @synthesize valid = _valid;
246
246
 
247
+ - (RCTModuleRegistry *)moduleRegistry
248
+ {
249
+ return _objCModuleRegistry;
250
+ }
251
+
247
252
  - (void)setRCTTurboModuleRegistry:(id<RCTTurboModuleRegistry>)turboModuleRegistry
248
253
  {
249
254
  _turboModuleRegistry = turboModuleRegistry;
@@ -286,6 +291,18 @@ struct RCTInstanceCallback : public InstanceCallback {
286
291
  if ([bridgeModule respondsToSelector:@selector(setCallableJSModules:)]) {
287
292
  bridgeModule.callableJSModules = _callableJSModules;
288
293
  }
294
+
295
+ /**
296
+ * Attach the RCTModuleRegistry to this TurboModule, which allows this TurboModule
297
+ * to require other TurboModules/NativeModules.
298
+ *
299
+ * Usage: In the TurboModule @implementation, include:
300
+ * `@synthesize moduleRegistry = _moduleRegistry`
301
+ */
302
+
303
+ if ([bridgeModule respondsToSelector:@selector(setModuleRegistry:)]) {
304
+ bridgeModule.moduleRegistry = _objCModuleRegistry;
305
+ }
289
306
  }
290
307
 
291
308
  - (std::shared_ptr<MessageQueueThread>)jsMessageThread
@@ -1113,7 +1130,7 @@ struct RCTInstanceCallback : public InstanceCallback {
1113
1130
  [self.devSettings setupHMRClientWithBundleURL:self.bundleURL];
1114
1131
  }
1115
1132
 
1116
- #if RCT_DEV_MENU
1133
+ #if RCT_DEV_MENU | RCT_PACKAGER_LOADING_FUNCTIONALITY
1117
1134
  - (void)loadAndExecuteSplitBundleURL:(NSURL *)bundleURL
1118
1135
  onError:(RCTLoadAndExecuteErrorBlock)onError
1119
1136
  onComplete:(dispatch_block_t)onComplete
@@ -59,6 +59,9 @@ typedef void (^RCTConnectedHandler)(void);
59
59
  /** Disconnects and removes all handlers. */
60
60
  - (void)stop;
61
61
 
62
+ /** Reconnect with given packager server. */
63
+ - (void)reconnect:(NSString *)packagerServerHostPort;
64
+
62
65
  /**
63
66
  * Historically no distinction was made between notification and request
64
67
  * handlers. If you use this method, it will be registered as *both* a
@@ -125,28 +125,32 @@ static RCTReconnectingWebSocket *socketForLocation(NSString *const serverHostPor
125
125
  _requestRegistrations.clear();
126
126
  }
127
127
 
128
- - (void)bundleURLSettingsChanged
128
+ - (void)reconnect:(NSString *)packagerServerHostPort
129
129
  {
130
130
  std::lock_guard<std::mutex> l(_mutex);
131
131
  if (_socket == nil) {
132
132
  return; // already stopped
133
133
  }
134
134
 
135
- NSString *const serverHostPort = [[RCTBundleURLProvider sharedSettings] packagerServerHostPort];
136
135
  NSString *const serverScheme = [[RCTBundleURLProvider sharedSettings] packagerScheme];
137
- if ([serverHostPort isEqual:_serverHostPortForSocket] && [serverScheme isEqual:_serverSchemeForSocket]) {
136
+ if ([packagerServerHostPort isEqual:_serverHostPortForSocket] && [serverScheme isEqual:_serverSchemeForSocket]) {
138
137
  return; // unchanged
139
138
  }
140
139
 
141
140
  _socket.delegate = nil;
142
141
  [_socket stop];
143
- _serverHostPortForSocket = serverHostPort;
142
+ _serverHostPortForSocket = packagerServerHostPort;
144
143
  _serverSchemeForSocket = serverScheme;
145
- _socket = socketForLocation(serverHostPort, serverScheme);
144
+ _socket = socketForLocation(packagerServerHostPort, serverScheme);
146
145
  _socket.delegate = self;
147
146
  [_socket start];
148
147
  }
149
148
 
149
+ - (void)bundleURLSettingsChanged
150
+ {
151
+ [self reconnect:[[RCTBundleURLProvider sharedSettings] packagerServerHostPort]];
152
+ }
153
+
150
154
  - (RCTHandlerToken)addNotificationHandler:(RCTNotificationHandler)handler
151
155
  queue:(dispatch_queue_t)queue
152
156
  forMethod:(NSString *)method
@@ -4,7 +4,9 @@
4
4
  # LICENSE file in the root directory of this source tree.
5
5
 
6
6
  require "json"
7
- require_relative "../../scripts/react_native_pods.rb"
7
+
8
+ react_native_path = "../.."
9
+ require_relative "#{react_native_path}/scripts/react_native_pods.rb"
8
10
 
9
11
  package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
10
12
  version = package['version']
@@ -30,7 +32,7 @@ Pod::Spec.new do |s|
30
32
  s.platforms = { :ios => "11.0" }
31
33
  s.compiler_flags = folly_compiler_flags + ' -Wno-nullability-completeness'
32
34
  s.source = source
33
- s.source_files = "**/*.{c,h,m,mm,cpp}"
35
+ s.source_files = "**/FBReactNativeSpec*.{h,mm}"
34
36
  s.header_dir = "FBReactNativeSpec"
35
37
 
36
38
  s.pod_target_xcconfig = {
@@ -46,5 +48,11 @@ Pod::Spec.new do |s|
46
48
  s.dependency "React-jsi", version
47
49
  s.dependency "ReactCommon/turbomodule/core", version
48
50
 
49
- use_react_native_codegen! (s)
51
+ use_react_native_codegen!(s, {
52
+ :react_native_path => react_native_path,
53
+ :js_srcs_dir => "#{react_native_path}/Libraries",
54
+ :library_name => "FBReactNativeSpec",
55
+ :library_type => "modules",
56
+ :output_dir => "#{react_native_path}/React/FBReactNativeSpec/FBReactNativeSpec"
57
+ })
50
58
  end
@@ -156,9 +156,6 @@ static ModalHostViewEventEmitter::OnOrientationChange onOrientationChangeStruct(
156
156
  auto eventEmitter = [self modalEventEmitter];
157
157
  if (eventEmitter) {
158
158
  eventEmitter->onShow(ModalHostViewEventEmitter::OnShow{});
159
-
160
- // A hack so that EventEmitter.cpp's eventTarget_ does not become null when modal is dismissed
161
- eventEmitter->setEnabled(true);
162
159
  }
163
160
  }];
164
161
  }
@@ -498,6 +498,11 @@ static void RCTSendPaperScrollEvent_DEPRECATED(UIScrollView *scrollView, NSInteg
498
498
  }
499
499
 
500
500
  - (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
501
+ {
502
+ [self _handleFinishedScrolling:scrollView];
503
+ }
504
+
505
+ - (void)_handleFinishedScrolling:(UIScrollView *)scrollView
501
506
  {
502
507
  [self _forceDispatchNextScrollEvent];
503
508
  [self scrollViewDidScroll:scrollView];
@@ -602,6 +607,11 @@ static void RCTSendPaperScrollEvent_DEPRECATED(UIScrollView *scrollView, NSInteg
602
607
 
603
608
  #pragma mark - Child views mounting
604
609
 
610
+ - (void)updateClippedSubviewsWithClipRect:(CGRect)clipRect relativeToView:(UIView *)clipView
611
+ {
612
+ // Do nothing. ScrollView manages its subview clipping individually in `_remountChildren`.
613
+ }
614
+
605
615
  - (void)_remountChildrenIfNeeded
606
616
  {
607
617
  CGPoint contentOffset = _scrollView.contentOffset;
@@ -705,6 +715,12 @@ static void RCTSendPaperScrollEvent_DEPRECATED(UIScrollView *scrollView, NSInteg
705
715
  }
706
716
 
707
717
  [_scrollView setContentOffset:offset animated:animated];
718
+
719
+ if (!animated) {
720
+ // When not animated, the expected workflow in ``scrollViewDidEndScrollingAnimation`` after scrolling is not going
721
+ // to get triggered. We will need to manually execute here.
722
+ [self _handleFinishedScrolling:_scrollView];
723
+ }
708
724
  }
709
725
 
710
726
  - (void)zoomToRect:(CGRect)rect animated:(BOOL)animated
@@ -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.
@@ -29,6 +29,8 @@ using namespace facebook::react;
29
29
  NSSet<NSString *> *_Nullable _propKeysManagedByAnimated_DO_NOT_USE_THIS_IS_BROKEN;
30
30
  }
31
31
 
32
+ @synthesize removeClippedSubviews = _removeClippedSubviews;
33
+
32
34
  - (instancetype)initWithFrame:(CGRect)frame
33
35
  {
34
36
  if (self = [super initWithFrame:frame]) {
@@ -329,11 +331,7 @@ using namespace facebook::react;
329
331
 
330
332
  // `accessibilityIgnoresInvertColors`
331
333
  if (oldViewProps.accessibilityIgnoresInvertColors != newViewProps.accessibilityIgnoresInvertColors) {
332
- #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 110000 /* __IPHONE_11_0 */
333
- if (@available(iOS 11.0, *)) {
334
- self.accessibilityIgnoresInvertColors = newViewProps.accessibilityIgnoresInvertColors;
335
- }
336
- #endif
334
+ self.accessibilityIgnoresInvertColors = newViewProps.accessibilityIgnoresInvertColors;
337
335
  }
338
336
 
339
337
  // `accessibilityValue`