react-native-navigation 8.0.0 → 8.1.0-alpha

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 (319) hide show
  1. package/ReactNativeNavigation.podspec +13 -12
  2. package/lib/android/app/src/main/java/com/reactnativenavigation/NavigationApplication.java +1 -1
  3. package/lib/android/app/src/main/java/com/reactnativenavigation/options/LayoutFactory.java +13 -14
  4. package/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationModule.java +4 -6
  5. package/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationPackage.kt +5 -4
  6. package/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationReactInitializer.java +20 -21
  7. package/lib/android/app/src/main/java/com/reactnativenavigation/react/ReactComponentViewCreator.java +1 -7
  8. package/lib/android/app/src/main/java/com/reactnativenavigation/react/ReactView.java +38 -28
  9. package/lib/android/app/src/main/java/com/reactnativenavigation/react/modal/ModalFrameLayout.kt +1 -1
  10. package/lib/android/app/src/main/java/com/reactnativenavigation/react/modal/ModalLayoutController.kt +4 -6
  11. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/externalcomponent/ExternalComponentCreator.java +1 -1
  12. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/externalcomponent/ExternalComponentViewController.java +2 -4
  13. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/navigator/Navigator.java +2 -2
  14. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/RootPresenter.java +1 -1
  15. package/lib/android/app/src/main/java/com/reactnativenavigation/views/component/ComponentViewCreator.java +1 -8
  16. package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/TopBarBackgroundView.java +2 -2
  17. package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/TopBarBackgroundViewCreator.java +1 -7
  18. package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarButtonCreator.java +1 -8
  19. package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactButtonView.java +3 -3
  20. package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactViewCreator.java +1 -7
  21. package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/react/ReactGateway.java +10 -11
  22. package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +8 -42
  23. package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +2 -2
  24. package/lib/dist/src/adapters/NativeCommandsSender.js +3 -2
  25. package/lib/dist/src/adapters/NativeEventsReceiver.js +4 -2
  26. package/lib/dist/src/adapters/NativeRNNTurboEventEmitter.d.ts +7 -0
  27. package/lib/dist/src/adapters/NativeRNNTurboEventEmitter.js +13 -0
  28. package/lib/dist/src/adapters/NativeRNNTurboModule.d.ts +28 -0
  29. package/lib/dist/src/adapters/NativeRNNTurboModule.js +16 -0
  30. package/lib/dist/src/commands/Deprecations.js +2 -2
  31. package/lib/dist/src/components/Modal.js +11 -2
  32. package/lib/ios/{AnimatedImageView.m → AnimatedImageView.mm} +1 -1
  33. package/lib/ios/{AnimatedReactView.m → AnimatedReactView.mm} +8 -1
  34. package/lib/ios/{AnimatedTextView.m → AnimatedTextView.mm} +21 -1
  35. package/lib/ios/BoolParser.h +1 -1
  36. package/lib/ios/{BottomTabsBasePresenter.m → BottomTabsBasePresenter.mm} +1 -1
  37. package/lib/ios/ColorParser.h +1 -1
  38. package/lib/ios/Constants.h +8 -0
  39. package/lib/ios/{Constants.m → Constants.mm} +12 -0
  40. package/lib/ios/NumberParser.h +1 -1
  41. package/lib/ios/RNNAppDelegate.h +8 -15
  42. package/lib/ios/RNNAppDelegate.mm +78 -81
  43. package/lib/ios/{RNNBottomTabsController.m → RNNBottomTabsController.mm} +1 -1
  44. package/lib/ios/RNNBridgeEventEmitter.h +4 -0
  45. package/lib/ios/RNNBridgeEventEmitter.mm +7 -0
  46. package/lib/ios/RNNBridgeManager.mm +71 -71
  47. package/lib/ios/{RNNButtonBuilder.m → RNNButtonBuilder.mm} +2 -2
  48. package/lib/ios/{RNNButtonOptions.m → RNNButtonOptions.mm} +2 -2
  49. package/lib/ios/{RNNButtonsParser.m → RNNButtonsParser.mm} +1 -1
  50. package/lib/ios/RNNCommandsHandler.h +8 -2
  51. package/lib/ios/{RNNCommandsHandler.m → RNNCommandsHandler.mm} +29 -10
  52. package/lib/ios/{RNNComponentOptions.m → RNNComponentOptions.mm} +3 -2
  53. package/lib/ios/{RNNComponentPresenter.m → RNNComponentPresenter.mm} +1 -1
  54. package/lib/ios/{RNNComponentViewController.m → RNNComponentViewController.mm} +0 -4
  55. package/lib/ios/RNNCustomTitleView.h +14 -4
  56. package/lib/ios/{RNNCustomTitleView.m → RNNCustomTitleView.mm} +8 -2
  57. package/lib/ios/RNNDotIndicatorPresenter.h +1 -1
  58. package/lib/ios/RNNElementFinder.h +2 -0
  59. package/lib/ios/RNNElementFinder.mm +44 -0
  60. package/lib/ios/RNNEventEmitter.h +1 -2
  61. package/lib/ios/{RNNEventEmitter.m → RNNEventEmitter.mm} +1 -5
  62. package/lib/ios/RNNExternalComponentStore.h +5 -0
  63. package/lib/ios/{RNNExternalComponentStore.m → RNNExternalComponentStore.mm} +12 -0
  64. package/lib/ios/{RNNFontAttributesCreator.m → RNNFontAttributesCreator.mm} +1 -1
  65. package/lib/ios/{RNNIconBackgroundOptions.m → RNNIconBackgroundOptions.mm} +1 -1
  66. package/lib/ios/{RNNInsetsOptions.m → RNNInsetsOptions.mm} +2 -2
  67. package/lib/ios/RNNModalManager.h +6 -0
  68. package/lib/ios/{RNNModalManager.m → RNNModalManager.mm} +71 -2
  69. package/lib/ios/{RNNNavigationOptions.m → RNNNavigationOptions.mm} +1 -1
  70. package/lib/ios/{RNNPushAnimation.m → RNNPushAnimation.mm} +1 -1
  71. package/lib/ios/RNNReactButtonView.h +4 -0
  72. package/lib/ios/RNNReactButtonView.mm +29 -0
  73. package/lib/ios/RNNReactRootViewCreator.h +4 -0
  74. package/lib/ios/{RNNReactRootViewCreator.m → RNNReactRootViewCreator.mm} +31 -8
  75. package/lib/ios/RNNReactView.h +64 -12
  76. package/lib/ios/RNNReactView.mm +119 -15
  77. package/lib/ios/{RNNScreenTransition.m → RNNScreenTransition.mm} +3 -2
  78. package/lib/ios/RNNSideMenu/MMDrawerController/{MMDrawerController.m → MMDrawerController.mm} +1 -1
  79. package/lib/ios/{RNNSideMenuChildVC.h → RNNSideMenuChildViewController.h} +1 -1
  80. package/lib/ios/{RNNSideMenuChildVC.m → RNNSideMenuChildViewController.mm} +4 -3
  81. package/lib/ios/{RNNSideMenuPresenter.m → RNNSideMenuPresenter.mm} +3 -3
  82. package/lib/ios/{RNNSideMenuController.h → RNNSideMenuViewController.h} +5 -5
  83. package/lib/ios/{RNNSideMenuController.m → RNNSideMenuViewController.mm} +8 -8
  84. package/lib/ios/{RNNSplashScreen.h → RNNSplashScreenViewController.h} +1 -1
  85. package/lib/ios/{RNNSplashScreen.m → RNNSplashScreenViewController.mm} +5 -5
  86. package/lib/ios/RNNSplitViewController.h +0 -1
  87. package/lib/ios/{RNNStackPresenter.m → RNNStackPresenter.mm} +2 -1
  88. package/lib/ios/RNNUIBarButtonItem.h +7 -1
  89. package/lib/ios/{RNNUIBarButtonItem.m → RNNUIBarButtonItem.mm} +17 -25
  90. package/lib/ios/RNNUtils.h +1 -0
  91. package/lib/ios/{RNNUtils.m → RNNUtils.mm} +8 -0
  92. package/lib/ios/{RNNControllerFactory.h → RNNViewControllerFactory.h} +10 -1
  93. package/lib/ios/{RNNControllerFactory.m → RNNViewControllerFactory.mm} +37 -7
  94. package/lib/ios/ReactNativeNavigation.h +13 -6
  95. package/lib/ios/ReactNativeNavigation.mm +117 -0
  96. package/lib/ios/ReactNativeNavigation.xcodeproj/project.pbxproj +976 -1166
  97. package/lib/ios/ScreenAnimationController.h +27 -9
  98. package/lib/ios/ScreenAnimationController.mm +180 -0
  99. package/lib/ios/SharedElementAnimator.mm +98 -0
  100. package/lib/ios/SideMenuOpenMode.h +1 -1
  101. package/lib/ios/StackControllerDelegate.h +10 -0
  102. package/lib/ios/{StackControllerDelegate.m → StackControllerDelegate.mm} +45 -1
  103. package/lib/ios/{TopBarTitlePresenter.m → TopBarTitlePresenter.mm} +2 -3
  104. package/lib/ios/{TransitionOptions.m → TransitionOptions.mm} +3 -2
  105. package/lib/ios/TurboModules/RNNTurboCommandsHandler.h +13 -0
  106. package/lib/ios/TurboModules/RNNTurboCommandsHandler.mm +16 -0
  107. package/lib/ios/TurboModules/RNNTurboEventEmitter.h +14 -0
  108. package/lib/ios/TurboModules/RNNTurboEventEmitter.mm +22 -0
  109. package/lib/ios/TurboModules/RNNTurboManager.h +23 -0
  110. package/lib/ios/TurboModules/RNNTurboManager.mm +114 -0
  111. package/lib/ios/TurboModules/RNNTurboModule.h +8 -0
  112. package/lib/ios/TurboModules/RNNTurboModule.mm +177 -0
  113. package/lib/ios/UISplitViewController+RNNOptions.h +1 -1
  114. package/lib/ios/{UISplitViewController+RNNOptions.m → UISplitViewController+RNNOptions.mm} +0 -1
  115. package/lib/ios/UIViewController+SideMenuController.h +2 -2
  116. package/lib/ios/{UIViewController+SideMenuController.m → UIViewController+SideMenuController.mm} +3 -3
  117. package/lib/ios/UIViewController+SideMenuViewController.h +8 -0
  118. package/lib/ios/Utils/{UIView+Utils.m → UIView+Utils.mm} +14 -0
  119. package/lib/src/adapters/NativeCommandsSender.ts +4 -2
  120. package/lib/src/adapters/NativeEventsReceiver.ts +6 -5
  121. package/lib/src/adapters/NativeRNNTurboEventEmitter.ts +18 -0
  122. package/lib/src/adapters/NativeRNNTurboModule.ts +47 -0
  123. package/lib/src/commands/Deprecations.ts +1 -1
  124. package/lib/src/components/Modal.tsx +23 -4
  125. package/metro.config.js +0 -1
  126. package/package.json +34 -6
  127. package/lib/ios/RNNElementFinder.m +0 -12
  128. package/lib/ios/RNNReactButtonView.m +0 -41
  129. package/lib/ios/RNNSwizzles.h +0 -13
  130. package/lib/ios/RNNSwizzles.m +0 -97
  131. package/lib/ios/ReactNativeNavigation.m +0 -85
  132. package/lib/ios/ScreenAnimationController.m +0 -139
  133. package/lib/ios/SharedElementAnimator.m +0 -83
  134. /package/lib/ios/{AnchorTransition.m → AnchorTransition.mm} +0 -0
  135. /package/lib/ios/{AnimatedUIImageView.m → AnimatedUIImageView.mm} +0 -0
  136. /package/lib/ios/{AnimatedViewFactory.m → AnimatedViewFactory.mm} +0 -0
  137. /package/lib/ios/{AnimationObserver.m → AnimationObserver.mm} +0 -0
  138. /package/lib/ios/{BaseAnimator.m → BaseAnimator.mm} +0 -0
  139. /package/lib/ios/{Bool.m → Bool.mm} +0 -0
  140. /package/lib/ios/{BoolParser.m → BoolParser.mm} +0 -0
  141. /package/lib/ios/{BottomTabPresenter.m → BottomTabPresenter.mm} +0 -0
  142. /package/lib/ios/{BottomTabPresenterCreator.m → BottomTabPresenterCreator.mm} +0 -0
  143. /package/lib/ios/{BottomTabsAfterInitialTabAttacher.m → BottomTabsAfterInitialTabAttacher.mm} +0 -0
  144. /package/lib/ios/{BottomTabsAppearancePresenter.m → BottomTabsAppearancePresenter.mm} +0 -0
  145. /package/lib/ios/{BottomTabsAttachMode.m → BottomTabsAttachMode.mm} +0 -0
  146. /package/lib/ios/{BottomTabsAttachModeFactory.m → BottomTabsAttachModeFactory.mm} +0 -0
  147. /package/lib/ios/{BottomTabsBaseAttacher.m → BottomTabsBaseAttacher.mm} +0 -0
  148. /package/lib/ios/{BottomTabsOnSwitchToTabAttacher.m → BottomTabsOnSwitchToTabAttacher.mm} +0 -0
  149. /package/lib/ios/{BottomTabsPresenterCreator.m → BottomTabsPresenterCreator.mm} +0 -0
  150. /package/lib/ios/{BottomTabsTogetherAttacher.m → BottomTabsTogetherAttacher.mm} +0 -0
  151. /package/lib/ios/{BoundsTransition.m → BoundsTransition.mm} +0 -0
  152. /package/lib/ios/{CenterTransition.m → CenterTransition.mm} +0 -0
  153. /package/lib/ios/{Color+Interpolation.m → Color+Interpolation.mm} +0 -0
  154. /package/lib/ios/{Color.m → Color.mm} +0 -0
  155. /package/lib/ios/{ColorParser.m → ColorParser.mm} +0 -0
  156. /package/lib/ios/{ColorTransition.m → ColorTransition.mm} +0 -0
  157. /package/lib/ios/{CornerRadiusTransition.m → CornerRadiusTransition.mm} +0 -0
  158. /package/lib/ios/{DeprecationOptions.m → DeprecationOptions.mm} +0 -0
  159. /package/lib/ios/{DictionaryParser.m → DictionaryParser.mm} +0 -0
  160. /package/lib/ios/{DisplayLinkAnimator.m → DisplayLinkAnimator.mm} +0 -0
  161. /package/lib/ios/{DotIndicatorOptions.m → DotIndicatorOptions.mm} +0 -0
  162. /package/lib/ios/{DotIndicatorParser.m → DotIndicatorParser.mm} +0 -0
  163. /package/lib/ios/{Double.m → Double.mm} +0 -0
  164. /package/lib/ios/{DoubleParser.m → DoubleParser.mm} +0 -0
  165. /package/lib/ios/{ElementAlphaTransition.m → ElementAlphaTransition.mm} +0 -0
  166. /package/lib/ios/{ElementAnimator.m → ElementAnimator.mm} +0 -0
  167. /package/lib/ios/{ElementBaseTransition.m → ElementBaseTransition.mm} +0 -0
  168. /package/lib/ios/{ElementFrameTransition.m → ElementFrameTransition.mm} +0 -0
  169. /package/lib/ios/{ElementHorizontalTransition.m → ElementHorizontalTransition.mm} +0 -0
  170. /package/lib/ios/{ElementTransitionOptions.m → ElementTransitionOptions.mm} +0 -0
  171. /package/lib/ios/{ElementTransitionsCreator.m → ElementTransitionsCreator.mm} +0 -0
  172. /package/lib/ios/{ElementVerticalTransition.m → ElementVerticalTransition.mm} +0 -0
  173. /package/lib/ios/{Enum.m → Enum.mm} +0 -0
  174. /package/lib/ios/{EnumParser.m → EnumParser.mm} +0 -0
  175. /package/lib/ios/{FloatTransition.m → FloatTransition.mm} +0 -0
  176. /package/lib/ios/{HorizontalScaleTransition.m → HorizontalScaleTransition.mm} +0 -0
  177. /package/lib/ios/{HorizontalTranslationTransition.m → HorizontalTranslationTransition.mm} +0 -0
  178. /package/lib/ios/{Image.m → Image.mm} +0 -0
  179. /package/lib/ios/{ImageParser.m → ImageParser.mm} +0 -0
  180. /package/lib/ios/{IntNumber.m → IntNumber.mm} +0 -0
  181. /package/lib/ios/{IntNumberParser.m → IntNumberParser.mm} +0 -0
  182. /package/lib/ios/{InteractivePopGestureDelegate.m → InteractivePopGestureDelegate.mm} +0 -0
  183. /package/lib/ios/Interpolators/{AccelerateDecelerateInterpolator.m → AccelerateDecelerateInterpolator.mm} +0 -0
  184. /package/lib/ios/Interpolators/{AccelerateInterpolator.m → AccelerateInterpolator.mm} +0 -0
  185. /package/lib/ios/Interpolators/{DecelerateAccelerateInterpolator.m → DecelerateAccelerateInterpolator.mm} +0 -0
  186. /package/lib/ios/Interpolators/{DecelerateInterpolator.m → DecelerateInterpolator.mm} +0 -0
  187. /package/lib/ios/Interpolators/{FastOutSlowIn.m → FastOutSlowIn.mm} +0 -0
  188. /package/lib/ios/Interpolators/{LinearInterpolator.m → LinearInterpolator.mm} +0 -0
  189. /package/lib/ios/Interpolators/{OvershootInterpolator.m → OvershootInterpolator.mm} +0 -0
  190. /package/lib/ios/Interpolators/{SpringInterpolator.m → SpringInterpolator.mm} +0 -0
  191. /package/lib/ios/{LNInterpolable.m → LNInterpolable.mm} +0 -0
  192. /package/lib/ios/{NSArray+utils.m → NSArray+utils.mm} +0 -0
  193. /package/lib/ios/{NoColor.m → NoColor.mm} +0 -0
  194. /package/lib/ios/{NullBool.m → NullBool.mm} +0 -0
  195. /package/lib/ios/{NullColor.m → NullColor.mm} +0 -0
  196. /package/lib/ios/{NullDictionary.m → NullDictionary.mm} +0 -0
  197. /package/lib/ios/{NullDouble.m → NullDouble.mm} +0 -0
  198. /package/lib/ios/{NullEnum.m → NullEnum.mm} +0 -0
  199. /package/lib/ios/{NullImage.m → NullImage.mm} +0 -0
  200. /package/lib/ios/{NullIntNumber.m → NullIntNumber.mm} +0 -0
  201. /package/lib/ios/{NullNumber.m → NullNumber.mm} +0 -0
  202. /package/lib/ios/{NullText.m → NullText.mm} +0 -0
  203. /package/lib/ios/{Number.m → Number.mm} +0 -0
  204. /package/lib/ios/{NumberParser.m → NumberParser.mm} +0 -0
  205. /package/lib/ios/{OptionsArrayParser.m → OptionsArrayParser.mm} +0 -0
  206. /package/lib/ios/{Param.m → Param.mm} +0 -0
  207. /package/lib/ios/{PathTransition.m → PathTransition.mm} +0 -0
  208. /package/lib/ios/{RCTConvert+Interpolation.m → RCTConvert+Interpolation.mm} +0 -0
  209. /package/lib/ios/{RCTConvert+SideMenuOpenGestureMode.m → RCTConvert+SideMenuOpenGestureMode.mm} +0 -0
  210. /package/lib/ios/{RCTConvert+UIBarButtonSystemItem.m → RCTConvert+UIBarButtonSystemItem.mm} +0 -0
  211. /package/lib/ios/{RCTConvert+UIFontWeight.m → RCTConvert+UIFontWeight.mm} +0 -0
  212. /package/lib/ios/{RCTHelpers.m → RCTHelpers.mm} +0 -0
  213. /package/lib/ios/{RNNAnimationsOptions.m → RNNAnimationsOptions.mm} +0 -0
  214. /package/lib/ios/{RNNBackButtonOptions.m → RNNBackButtonOptions.mm} +0 -0
  215. /package/lib/ios/{RNNBackgroundOptions.m → RNNBackgroundOptions.mm} +0 -0
  216. /package/lib/ios/{RNNBaseIconCreator.m → RNNBaseIconCreator.mm} +0 -0
  217. /package/lib/ios/{RNNBasePresenter.m → RNNBasePresenter.mm} +0 -0
  218. /package/lib/ios/{RNNBottomTabOptions.m → RNNBottomTabOptions.mm} +0 -0
  219. /package/lib/ios/{RNNBottomTabsOptions.m → RNNBottomTabsOptions.mm} +0 -0
  220. /package/lib/ios/{RNNBottomTabsPresenter.m → RNNBottomTabsPresenter.mm} +0 -0
  221. /package/lib/ios/{RNNBridgeModule.m → RNNBridgeModule.mm} +0 -0
  222. /package/lib/ios/{RNNButtonsPresenter.m → RNNButtonsPresenter.mm} +0 -0
  223. /package/lib/ios/{RNNComponentRootView.m → RNNComponentRootView.mm} +0 -0
  224. /package/lib/ios/{RNNComponentView.m → RNNComponentView.mm} +0 -0
  225. /package/lib/ios/{RNNConvert.m → RNNConvert.mm} +0 -0
  226. /package/lib/ios/{RNNDefaultOptionsHelper.m → RNNDefaultOptionsHelper.mm} +0 -0
  227. /package/lib/ios/{RNNDictionary.m → RNNDictionary.mm} +0 -0
  228. /package/lib/ios/{RNNDotIndicatorPresenter.m → RNNDotIndicatorPresenter.mm} +0 -0
  229. /package/lib/ios/{RNNDynamicIconCreator.m → RNNDynamicIconCreator.mm} +0 -0
  230. /package/lib/ios/{RNNElement.m → RNNElement.mm} +0 -0
  231. /package/lib/ios/{RNNElementView.m → RNNElementView.mm} +0 -0
  232. /package/lib/ios/{RNNEnterExitAnimation.m → RNNEnterExitAnimation.mm} +0 -0
  233. /package/lib/ios/{RNNErrorHandler.m → RNNErrorHandler.mm} +0 -0
  234. /package/lib/ios/{RNNExternalViewController.m → RNNExternalViewController.mm} +0 -0
  235. /package/lib/ios/{RNNIconCreator.m → RNNIconCreator.mm} +0 -0
  236. /package/lib/ios/{RNNIconDrawer.m → RNNIconDrawer.mm} +0 -0
  237. /package/lib/ios/{RNNInterpolator.m → RNNInterpolator.mm} +0 -0
  238. /package/lib/ios/{RNNLargeTitleOptions.m → RNNLargeTitleOptions.mm} +0 -0
  239. /package/lib/ios/{RNNLayoutInfo.m → RNNLayoutInfo.mm} +0 -0
  240. /package/lib/ios/{RNNLayoutManager.m → RNNLayoutManager.mm} +0 -0
  241. /package/lib/ios/{RNNLayoutNode.m → RNNLayoutNode.mm} +0 -0
  242. /package/lib/ios/{RNNLayoutOptions.m → RNNLayoutOptions.mm} +0 -0
  243. /package/lib/ios/{RNNModalHostViewManagerHandler.m → RNNModalHostViewManagerHandler.mm} +0 -0
  244. /package/lib/ios/{RNNModalManagerEventHandler.m → RNNModalManagerEventHandler.mm} +0 -0
  245. /package/lib/ios/{RNNModalOptions.m → RNNModalOptions.mm} +0 -0
  246. /package/lib/ios/{RNNOptions.m → RNNOptions.mm} +0 -0
  247. /package/lib/ios/{RNNOverlayManager.m → RNNOverlayManager.mm} +0 -0
  248. /package/lib/ios/{RNNOverlayOptions.m → RNNOverlayOptions.mm} +0 -0
  249. /package/lib/ios/{RNNOverlayWindow.m → RNNOverlayWindow.mm} +0 -0
  250. /package/lib/ios/{RNNPreviewOptions.m → RNNPreviewOptions.mm} +0 -0
  251. /package/lib/ios/{RNNReactBackgroundView.m → RNNReactBackgroundView.mm} +0 -0
  252. /package/lib/ios/{RNNReactComponentRegistry.m → RNNReactComponentRegistry.mm} +0 -0
  253. /package/lib/ios/{RNNReactTitleView.m → RNNReactTitleView.mm} +0 -0
  254. /package/lib/ios/{RNNScreenTransitionsCreator.m → RNNScreenTransitionsCreator.mm} +0 -0
  255. /package/lib/ios/{RNNScrollEdgeAppearanceBackgroundOptions.m → RNNScrollEdgeAppearanceBackgroundOptions.mm} +0 -0
  256. /package/lib/ios/{RNNScrollEdgeAppearanceOptions.m → RNNScrollEdgeAppearanceOptions.mm} +0 -0
  257. /package/lib/ios/{RNNSearchBarOptions.m → RNNSearchBarOptions.mm} +0 -0
  258. /package/lib/ios/{RNNSegmentedControl.m → RNNSegmentedControl.mm} +0 -0
  259. /package/lib/ios/{RNNSetRootAnimator.m → RNNSetRootAnimator.mm} +0 -0
  260. /package/lib/ios/{RNNShadowOptions.m → RNNShadowOptions.mm} +0 -0
  261. /package/lib/ios/{RNNSharedElementAnimationOptions.m → RNNSharedElementAnimationOptions.mm} +0 -0
  262. /package/lib/ios/RNNSideMenu/MMDrawerController/{MMDrawerBarButtonItem.m → MMDrawerBarButtonItem.mm} +0 -0
  263. /package/lib/ios/RNNSideMenu/MMDrawerController/{MMDrawerVisualState.m → MMDrawerVisualState.mm} +0 -0
  264. /package/lib/ios/RNNSideMenu/MMDrawerController/{MMExampleDrawerVisualStateManager.m → MMExampleDrawerVisualStateManager.mm} +0 -0
  265. /package/lib/ios/RNNSideMenu/MMDrawerController/{UIViewController+MMDrawerController.m → UIViewController+MMDrawerController.mm} +0 -0
  266. /package/lib/ios/{RNNSideMenuOptions.m → RNNSideMenuOptions.mm} +0 -0
  267. /package/lib/ios/{RNNSideMenuSideOptions.m → RNNSideMenuSideOptions.mm} +0 -0
  268. /package/lib/ios/{RNNSplitViewController.m → RNNSplitViewController.mm} +0 -0
  269. /package/lib/ios/{RNNSplitViewControllerPresenter.m → RNNSplitViewControllerPresenter.mm} +0 -0
  270. /package/lib/ios/{RNNSplitViewOptions.m → RNNSplitViewOptions.mm} +0 -0
  271. /package/lib/ios/{RNNStackController.m → RNNStackController.mm} +0 -0
  272. /package/lib/ios/{RNNStatusBarOptions.m → RNNStatusBarOptions.mm} +0 -0
  273. /package/lib/ios/{RNNSubtitleOptions.m → RNNSubtitleOptions.mm} +0 -0
  274. /package/lib/ios/{RNNTabBarItemCreator.m → RNNTabBarItemCreator.mm} +0 -0
  275. /package/lib/ios/{RNNTitleOptions.m → RNNTitleOptions.mm} +0 -0
  276. /package/lib/ios/{RNNTitleViewHelper.m → RNNTitleViewHelper.mm} +0 -0
  277. /package/lib/ios/{RNNTopBarOptions.m → RNNTopBarOptions.mm} +0 -0
  278. /package/lib/ios/{RNNTopTabOptions.m → RNNTopTabOptions.mm} +0 -0
  279. /package/lib/ios/{RNNTopTabsOptions.m → RNNTopTabsOptions.mm} +0 -0
  280. /package/lib/ios/{RNNTopTabsViewController.m → RNNTopTabsViewController.mm} +0 -0
  281. /package/lib/ios/{RNNTransitionStateHolder.m → RNNTransitionStateHolder.mm} +0 -0
  282. /package/lib/ios/{RNNUIBarBackButtonItem.m → RNNUIBarBackButtonItem.mm} +0 -0
  283. /package/lib/ios/{RNNViewLocation.m → RNNViewLocation.mm} +0 -0
  284. /package/lib/ios/{RectTransition.m → RectTransition.mm} +0 -0
  285. /package/lib/ios/{RotationTransition.m → RotationTransition.mm} +0 -0
  286. /package/lib/ios/{ScreenReversedAnimationController.m → ScreenReversedAnimationController.mm} +0 -0
  287. /package/lib/ios/{SharedElementTransition.m → SharedElementTransition.mm} +0 -0
  288. /package/lib/ios/{SharedElementTransitionOptions.m → SharedElementTransitionOptions.mm} +0 -0
  289. /package/lib/ios/{SideMenuOpenGestureModeParser.m → SideMenuOpenGestureModeParser.mm} +0 -0
  290. /package/lib/ios/{SideMenuOpenMode.m → SideMenuOpenMode.mm} +0 -0
  291. /package/lib/ios/{TabBarItemAppearanceCreator.m → TabBarItemAppearanceCreator.mm} +0 -0
  292. /package/lib/ios/{TabBarItemIOS15Creator.m → TabBarItemIOS15Creator.mm} +0 -0
  293. /package/lib/ios/{Text.m → Text.mm} +0 -0
  294. /package/lib/ios/{TextParser.m → TextParser.mm} +0 -0
  295. /package/lib/ios/{TextStorageTransition.m → TextStorageTransition.mm} +0 -0
  296. /package/lib/ios/{TimeInterval.m → TimeInterval.mm} +0 -0
  297. /package/lib/ios/{TimeIntervalParser.m → TimeIntervalParser.mm} +0 -0
  298. /package/lib/ios/{TopBarAppearancePresenter.m → TopBarAppearancePresenter.mm} +0 -0
  299. /package/lib/ios/{TopBarPresenter.m → TopBarPresenter.mm} +0 -0
  300. /package/lib/ios/{TopBarPresenterCreator.m → TopBarPresenterCreator.mm} +0 -0
  301. /package/lib/ios/{TransformRectTransition.m → TransformRectTransition.mm} +0 -0
  302. /package/lib/ios/{Transition.m → Transition.mm} +0 -0
  303. /package/lib/ios/{TransitionDetailsOptions.m → TransitionDetailsOptions.mm} +0 -0
  304. /package/lib/ios/{UIImage+utils.m → UIImage+utils.mm} +0 -0
  305. /package/lib/ios/{UIImageView+Transition.m → UIImageView+Transition.mm} +0 -0
  306. /package/lib/ios/{UINavigationController+RNNCommands.m → UINavigationController+RNNCommands.mm} +0 -0
  307. /package/lib/ios/{UINavigationController+RNNOptions.m → UINavigationController+RNNOptions.mm} +0 -0
  308. /package/lib/ios/{UITabBar+utils.m → UITabBar+utils.mm} +0 -0
  309. /package/lib/ios/{UITabBarController+RNNOptions.m → UITabBarController+RNNOptions.mm} +0 -0
  310. /package/lib/ios/{UIViewController+LayoutProtocol.m → UIViewController+LayoutProtocol.mm} +0 -0
  311. /package/lib/ios/{UIViewController+RNNOptions.m → UIViewController+RNNOptions.mm} +0 -0
  312. /package/lib/ios/Utils/{UIColor+RNNUtils.m → UIColor+RNNUtils.mm} +0 -0
  313. /package/lib/ios/Utils/{UITabBarController+RNNUtils.m → UITabBarController+RNNUtils.mm} +0 -0
  314. /package/lib/ios/Utils/{UIViewController+Utils.m → UIViewController+Utils.mm} +0 -0
  315. /package/lib/ios/{VICMAImageView.m → VICMAImageView.mm} +0 -0
  316. /package/lib/ios/{VerticalRotationTransition.m → VerticalRotationTransition.mm} +0 -0
  317. /package/lib/ios/{VerticalScaleTransition.m → VerticalScaleTransition.mm} +0 -0
  318. /package/lib/ios/{VerticalTranslationTransition.m → VerticalTranslationTransition.mm} +0 -0
  319. /package/lib/ios/{WindowOptions.m → WindowOptions.mm} +0 -0
@@ -4,20 +4,38 @@
4
4
  #import <React/RCTUIManagerObserverCoordinator.h>
5
5
  #import <React/RCTUIManagerUtils.h>
6
6
 
7
+ #ifdef RCT_NEW_ARCH_ENABLED
8
+ #import <React-RuntimeApple/ReactCommon/RCTHost.h>
9
+ #import <React/RCTSurfacePresenterStub.h>
10
+ #endif
11
+
12
+
7
13
  @interface ScreenAnimationController
8
- : NSObject <UIViewControllerTransitioningDelegate, UIViewControllerAnimatedTransitioning,
9
- RCTUIManagerObserver>
14
+ : NSObject <UIViewControllerTransitioningDelegate, UIViewControllerAnimatedTransitioning,
15
+ #ifdef RCT_NEW_ARCH_ENABLED
16
+ RCTSurfacePresenterObserver,
17
+ #endif
18
+ RCTUIManagerObserver>
19
+
20
+ - (instancetype)initWithContentTransition:(RNNEnterExitAnimation *)contentTransition
21
+ elementTransitions:(NSArray<ElementTransitionOptions *> *)elementTransitions
22
+ sharedElementTransitions:
23
+ (NSArray<SharedElementTransitionOptions *> *)sharedElementTransitions
24
+ duration:(CGFloat)duration
25
+ bridge:(RCTBridge *)bridge;
10
26
 
27
+ #ifdef RCT_NEW_ARCH_ENABLED
11
28
  - (instancetype)initWithContentTransition:(RNNEnterExitAnimation *)contentTransition
12
- elementTransitions:(NSArray<ElementTransitionOptions *> *)elementTransitions
13
- sharedElementTransitions:
14
- (NSArray<SharedElementTransitionOptions *> *)sharedElementTransitions
15
- duration:(CGFloat)duration
16
- bridge:(RCTBridge *)bridge;
29
+ elementTransitions:(NSArray<ElementTransitionOptions *> *)elementTransitions
30
+ sharedElementTransitions:
31
+ (NSArray<SharedElementTransitionOptions *> *)sharedElementTransitions
32
+ duration:(CGFloat)duration
33
+ host:(RCTHost *)host;
34
+ #endif
17
35
 
18
36
  - (NSArray *)createTransitionsFromVC:(UIViewController *)fromVC
19
- toVC:(UIViewController *)toVC
20
- containerView:(UIView *)containerView;
37
+ toVC:(UIViewController *)toVC
38
+ containerView:(UIView *)containerView;
21
39
 
22
40
  @property(nonatomic, strong) RNNEnterExitAnimation *content;
23
41
  @property(nonatomic, strong) NSArray<ElementTransitionOptions *> *elementTransitions;
@@ -0,0 +1,180 @@
1
+ #import "ScreenAnimationController.h"
2
+ #import "DisplayLinkAnimator.h"
3
+ #import "RNNScreenTransitionsCreator.h"
4
+ #import "SharedElementAnimator.h"
5
+ #import "UIViewController+LayoutProtocol.h"
6
+
7
+ #ifdef RCT_NEW_ARCH_ENABLED
8
+ #include <React/RCTSurfacePresenter.h>
9
+ #include <React/RCTMountingManager.h>
10
+ #endif
11
+
12
+ @implementation ScreenAnimationController {
13
+ RCTBridge *_bridge;
14
+ #ifdef RCT_NEW_ARCH_ENABLED
15
+ RCTHost *_host;
16
+ #endif
17
+ id<UIViewControllerContextTransitioning> _transitionContext;
18
+ SharedElementAnimator *_sharedElementAnimator;
19
+ BOOL _animate;
20
+ CGFloat _duration;
21
+ }
22
+
23
+ - (instancetype)initWithContentTransition:(RNNEnterExitAnimation *)contentTransition
24
+ elementTransitions:(NSArray<ElementTransitionOptions *> *)elementTransitions
25
+ sharedElementTransitions:
26
+ (NSArray<SharedElementTransitionOptions *> *)sharedElementTransitions
27
+ duration:(CGFloat)duration
28
+ bridge:(RCTBridge *)bridge {
29
+ self = [super init];
30
+ _bridge = bridge;
31
+ _content = contentTransition;
32
+ _elementTransitions = elementTransitions;
33
+ _sharedElementTransitions = sharedElementTransitions;
34
+ _duration = duration;
35
+ return self;
36
+ }
37
+
38
+ #ifdef RCT_NEW_ARCH_ENABLED
39
+ - (instancetype)initWithContentTransition:(RNNEnterExitAnimation *)contentTransition
40
+ elementTransitions:(NSArray<ElementTransitionOptions *> *)elementTransitions
41
+ sharedElementTransitions:
42
+ (NSArray<SharedElementTransitionOptions *> *)sharedElementTransitions
43
+ duration:(CGFloat)duration
44
+ host:(RCTHost *)host {
45
+ self = [super init];
46
+ _host = host;
47
+ _content = contentTransition;
48
+ _elementTransitions = elementTransitions;
49
+ _sharedElementTransitions = sharedElementTransitions;
50
+ _duration = duration;
51
+ return self;
52
+ }
53
+ #endif
54
+
55
+ - (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext {
56
+ #ifdef RCT_NEW_ARCH_ENABLED
57
+ if (_host != nil) {
58
+ [_host.surfacePresenter addObserver:self];
59
+ } else {
60
+ [_bridge.uiManager.observerCoordinator addObserver:self];
61
+ }
62
+ #else
63
+ [_bridge.uiManager.observerCoordinator addObserver:self];
64
+ #endif
65
+
66
+ _animate = YES;
67
+ _transitionContext = transitionContext;
68
+ [self prepareTransitionContext:transitionContext];
69
+
70
+ UIViewController *fromVC =
71
+ [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
72
+ if (![fromVC.navigationController.childViewControllers containsObject:fromVC]) {
73
+ [self performAnimationOnce];
74
+ }
75
+ }
76
+
77
+ - (void)prepareTransitionContext:(id<UIViewControllerContextTransitioning>)transitionContext {
78
+ UINavigationController *toViewController =
79
+ [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
80
+ toViewController.view.alpha = 0;
81
+ UIView *fromView = [transitionContext viewForKey:UITransitionContextFromViewKey];
82
+
83
+ [transitionContext.containerView addSubview:fromView];
84
+ [transitionContext.containerView addSubview:toViewController.view];
85
+ [toViewController prepareForTransition];
86
+ }
87
+
88
+ - (NSArray *)createTransitionsFromVC:(UIViewController *)fromVC
89
+ toVC:(UIViewController *)toVC
90
+ containerView:(UIView *)containerView {
91
+ NSArray *transitions =
92
+ [RNNScreenTransitionsCreator createTransitionsFromVC:fromVC
93
+ toVC:toVC
94
+ containerView:containerView
95
+ contentTransition:self.content
96
+ elementTransitions:self.elementTransitions];
97
+ _sharedElementAnimator =
98
+ [[SharedElementAnimator alloc] initWithTransitions:self.sharedElementTransitions
99
+ fromVC:fromVC
100
+ toVC:toVC
101
+ containerView:containerView];
102
+ return [transitions arrayByAddingObjectsFromArray:[_sharedElementAnimator create]];
103
+ }
104
+
105
+ - (void)performAnimationOnce {
106
+ if (_animate) {
107
+ _animate = NO;
108
+ RCTExecuteOnMainQueue(^{
109
+ id<UIViewControllerContextTransitioning> transitionContext = self->_transitionContext;
110
+ UIViewController *fromVC =
111
+ [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
112
+ UIViewController *toVC =
113
+ [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
114
+ NSArray *transitions = [self createTransitionsFromVC:fromVC
115
+ toVC:toVC
116
+ containerView:transitionContext.containerView];
117
+ [self animateTransitions:transitions andTransitioningContext:transitionContext];
118
+ });
119
+ }
120
+ }
121
+
122
+ - (void)animateTransitions:(NSArray<id<DisplayLinkAnimatorDelegate>> *)animators
123
+ andTransitioningContext:(id<UIViewControllerContextTransitioning>)transitionContext {
124
+ DisplayLinkAnimator *displayLinkAnimator = [[DisplayLinkAnimator alloc]
125
+ initWithDisplayLinkAnimators:animators
126
+ duration:[self transitionDuration:transitionContext]];
127
+
128
+ [displayLinkAnimator setOnStart:^{
129
+ [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey].view.alpha =
130
+ 1.f;
131
+ }];
132
+
133
+ [displayLinkAnimator setCompletion:^{
134
+ if (![transitionContext transitionWasCancelled]) {
135
+ [transitionContext completeTransition:![transitionContext transitionWasCancelled]];
136
+ }
137
+ }];
138
+
139
+ [displayLinkAnimator start];
140
+ }
141
+
142
+ - (NSTimeInterval)transitionDuration:(id<UIViewControllerContextTransitioning>)transitionContext {
143
+ return _duration;
144
+ }
145
+
146
+ // TODO: TEST THIS
147
+ #ifdef RCT_NEW_ARCH_ENABLED
148
+ - (void)didMountComponentsWithRootTag:(NSInteger)rootTag {
149
+ [self performAnimationOnce];
150
+ }
151
+ #endif
152
+
153
+ - (void)uiManagerDidPerformMounting:(RCTUIManager *)manager {
154
+ [self performAnimationOnce];
155
+ }
156
+
157
+ - (id<UIViewControllerAnimatedTransitioning>)
158
+ animationControllerForPresentedController:(UIViewController *)presented
159
+ presentingController:(UIViewController *)presenting
160
+ sourceController:(UIViewController *)source {
161
+ return self;
162
+ }
163
+
164
+ - (id<UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:
165
+ (UIViewController *)dismissed {
166
+ return self;
167
+ }
168
+
169
+ - (void)animationEnded:(BOOL)transitionCompleted {
170
+ UIView *toView = [_transitionContext viewForKey:UITransitionContextToViewKey];
171
+ UIView *fromView = [_transitionContext viewForKey:UITransitionContextFromViewKey];
172
+ [_sharedElementAnimator animationEnded];
173
+ toView.layer.transform = CATransform3DIdentity;
174
+ fromView.layer.transform = CATransform3DIdentity;
175
+ toView.alpha = 1.f;
176
+ _transitionContext = nil;
177
+ _sharedElementAnimator = nil;
178
+ }
179
+
180
+ @end
@@ -0,0 +1,98 @@
1
+ #import "SharedElementAnimator.h"
2
+ #import "AnimatedViewFactory.h"
3
+ #import "BaseAnimator.h"
4
+ #import "NSArray+utils.h"
5
+ #import "RNNElementFinder.h"
6
+ #import "SharedElementTransition.h"
7
+ #import "UIViewController+LayoutProtocol.h"
8
+ #import <React/RCTImageComponentView.h>
9
+
10
+ @implementation SharedElementAnimator {
11
+ NSArray<SharedElementTransitionOptions *> *_sharedElementTransitions;
12
+ NSArray *_transitions;
13
+ UIViewController *_fromVC;
14
+ UIViewController *_toVC;
15
+ UIView *_containerView;
16
+ }
17
+
18
+ - (instancetype)initWithTransitions:
19
+ (NSArray<SharedElementTransitionOptions *> *)sharedElementTransitions
20
+ fromVC:(UIViewController *)fromVC
21
+ toVC:(UIViewController *)toVC
22
+ containerView:(UIView *)containerView {
23
+ self = [super init];
24
+ _sharedElementTransitions = sharedElementTransitions;
25
+ _fromVC = fromVC;
26
+ _toVC = toVC;
27
+ _containerView = containerView;
28
+
29
+ return self;
30
+ }
31
+
32
+ - (NSArray<DisplayLinkAnimatorDelegate> *)create {
33
+ NSMutableArray<DisplayLinkAnimatorDelegate> *transitions =
34
+ [NSMutableArray<DisplayLinkAnimatorDelegate> new];
35
+ for (SharedElementTransitionOptions *transitionOptions in _sharedElementTransitions) {
36
+ UIView *fromView =
37
+ [RNNElementFinder findElementForId:transitionOptions.fromId
38
+ inView:_fromVC.presentedComponentViewController.reactView];
39
+
40
+ UIView *toView =
41
+ [RNNElementFinder findElementForId:transitionOptions.toId
42
+ inView:_toVC.presentedComponentViewController.reactView];
43
+
44
+ if (fromView == nil || toView == nil) {
45
+ continue;
46
+ }
47
+
48
+ #ifdef RCT_NEW_ARCH_ENABLED
49
+ auto castedFromView = (RCTViewComponentView *)fromView;
50
+ auto castedToView = (RCTViewComponentView *)toView;
51
+
52
+ if ([castedToView respondsToSelector:@selector(props)] && [castedFromView respondsToSelector:@selector(props)]) {
53
+ castedToView.reactZIndex = ((facebook::react::ViewProps *)castedToView.props.get())->zIndex.value_or(0);
54
+ castedFromView.reactZIndex = ((facebook::react::ViewProps *)castedFromView.props.get())->zIndex.value_or(0);
55
+
56
+ printf("%d %d\n", castedFromView.reactZIndex, castedToView.reactZIndex);
57
+ }
58
+ #endif
59
+
60
+ SharedElementTransition *sharedElementAnimator =
61
+ [[SharedElementTransition alloc] initWithTransitionOptions:transitionOptions
62
+ fromView:fromView
63
+ toView:toView
64
+ containerView:_containerView];
65
+ [transitions addObject:sharedElementAnimator];
66
+ }
67
+
68
+ NSArray<DisplayLinkAnimatorDelegate> *sortedTransitions = [self sortByZIndex:transitions];
69
+ [self addSharedElementViews:sortedTransitions toContainerView:_containerView];
70
+ _transitions = transitions;
71
+
72
+ return sortedTransitions;
73
+ }
74
+
75
+ - (void)animationEnded {
76
+ for (SharedElementTransition *transition in _transitions.reverseObjectEnumerator) {
77
+ [transition.view reset];
78
+ }
79
+ }
80
+
81
+ - (void)addSharedElementViews:(NSArray<BaseAnimator *> *)animators
82
+ toContainerView:(UIView *)containerView {
83
+ for (BaseAnimator *animator in animators) {
84
+ [containerView addSubview:animator.view];
85
+ }
86
+ }
87
+
88
+ - (NSArray<DisplayLinkAnimatorDelegate> *)sortByZIndex:
89
+ (NSArray<DisplayLinkAnimatorDelegate> *)animators {
90
+ return (NSArray<DisplayLinkAnimatorDelegate> *)[animators
91
+ sortedArrayUsingComparator:^NSComparisonResult(BaseAnimator *a, BaseAnimator *b) {
92
+ id first = [a.view valueForKey:@"reactZIndex"];
93
+ id second = [b.view valueForKey:@"reactZIndex"];
94
+ return [first compare:second];
95
+ }];
96
+ }
97
+
98
+ @end
@@ -1,4 +1,4 @@
1
- #import "Number.h"
1
+ #import "ReactNativeNavigation/Number.h"
2
2
 
3
3
  @interface SideMenuOpenMode : Number
4
4
 
@@ -1,10 +1,20 @@
1
+ #ifdef RCT_NEW_ARCH_ENABLED
2
+ #import "RNNTurboEventEmitter.h"
3
+ #else
1
4
  #import "RNNEventEmitter.h"
5
+ #endif
2
6
  #import <Foundation/Foundation.h>
3
7
  #import <UIKit/UIKit.h>
4
8
 
9
+ @class RCTHost;
10
+
5
11
  @interface StackControllerDelegate : NSObject <UINavigationControllerDelegate>
6
12
 
13
+ #ifdef RCT_NEW_ARCH_ENABLED
14
+ - (instancetype)initWithEventEmitter:(RNNTurboEventEmitter *)eventEmitter;
15
+ #else
7
16
  - (instancetype)initWithEventEmitter:(RNNEventEmitter *)eventEmitter;
17
+ #endif
8
18
 
9
19
  - (BOOL)navigationController:(UINavigationController *)navigationController
10
20
  shouldPopItem:(BOOL)shouldPopItem;
@@ -4,12 +4,20 @@
4
4
  #import "UIViewController+LayoutProtocol.h"
5
5
 
6
6
  @implementation StackControllerDelegate {
7
+ #ifdef RCT_NEW_ARCH_ENABLED
8
+ RNNTurboEventEmitter *_eventEmitter;
9
+ #else
7
10
  RNNEventEmitter *_eventEmitter;
11
+ #endif
8
12
  UIViewController *_presentedViewController;
9
13
  BOOL _isPopping;
10
14
  }
11
15
 
16
+ #ifdef RCT_NEW_ARCH_ENABLED
17
+ - (instancetype)initWithEventEmitter:(RNNTurboEventEmitter *)eventEmitter {
18
+ #else
12
19
  - (instancetype)initWithEventEmitter:(RNNEventEmitter *)eventEmitter {
20
+ #endif
13
21
  self = [super init];
14
22
  _eventEmitter = eventEmitter;
15
23
  return self;
@@ -63,21 +71,57 @@
63
71
  if (operation == UINavigationControllerOperationPush &&
64
72
  toVCOptionsWithDefault.animations.push.hasCustomAnimation) {
65
73
  RNNScreenTransition *screenTransition = toVCOptionsWithDefault.animations.push;
66
- return [[ScreenAnimationController alloc]
74
+ #ifdef RCT_NEW_ARCH_ENABLED
75
+ if (_eventEmitter.host != nil) {
76
+ return [[ScreenAnimationController alloc]
77
+ initWithContentTransition:screenTransition.content
78
+ elementTransitions:screenTransition.elementTransitions
79
+ sharedElementTransitions:screenTransition.sharedElementTransitions
80
+ duration:screenTransition.maxDuration
81
+ host:_eventEmitter.host];
82
+ } else {
83
+ return [[ScreenAnimationController alloc]
84
+ initWithContentTransition:screenTransition.content
85
+ elementTransitions:screenTransition.elementTransitions
86
+ sharedElementTransitions:screenTransition.sharedElementTransitions
87
+ duration:screenTransition.maxDuration
88
+ bridge:_eventEmitter.bridge];
89
+ }
90
+ #else
91
+ return [[ScreenAnimationController alloc]
67
92
  initWithContentTransition:screenTransition.content
68
93
  elementTransitions:screenTransition.elementTransitions
69
94
  sharedElementTransitions:screenTransition.sharedElementTransitions
70
95
  duration:screenTransition.maxDuration
71
96
  bridge:_eventEmitter.bridge];
97
+ #endif
72
98
  } else if (operation == UINavigationControllerOperationPop &&
73
99
  fromVCOptionsWithDefault.animations.pop.hasCustomAnimation) {
74
100
  RNNScreenTransition *screenTransition = fromVCOptionsWithDefault.animations.pop;
101
+ #ifdef RCT_NEW_ARCH_ENABLED
102
+ if (_eventEmitter.host != nil) {
103
+ return [[ScreenReversedAnimationController alloc]
104
+ initWithContentTransition:screenTransition.content
105
+ elementTransitions:screenTransition.elementTransitions
106
+ sharedElementTransitions:screenTransition.sharedElementTransitions
107
+ duration:screenTransition.maxDuration
108
+ host:_eventEmitter.host];
109
+ } else {
110
+ return [[ScreenReversedAnimationController alloc]
111
+ initWithContentTransition:screenTransition.content
112
+ elementTransitions:screenTransition.elementTransitions
113
+ sharedElementTransitions:screenTransition.sharedElementTransitions
114
+ duration:screenTransition.maxDuration
115
+ bridge:_eventEmitter.bridge];
116
+ }
117
+ #else
75
118
  return [[ScreenReversedAnimationController alloc]
76
119
  initWithContentTransition:screenTransition.content
77
120
  elementTransitions:screenTransition.elementTransitions
78
121
  sharedElementTransitions:screenTransition.sharedElementTransitions
79
122
  duration:screenTransition.maxDuration
80
123
  bridge:_eventEmitter.bridge];
124
+ #endif
81
125
  } else {
82
126
  return nil;
83
127
  }
@@ -2,6 +2,7 @@
2
2
  #import "RNNReactTitleView.h"
3
3
  #import "RNNTitleViewHelper.h"
4
4
  #import "UIViewController+RNNOptions.h"
5
+ #import "RNNUtils.h"
5
6
 
6
7
  @implementation TopBarTitlePresenter {
7
8
  RNNReactTitleView *_customTitleView;
@@ -69,7 +70,7 @@
69
70
  - (void)setCustomNavigationTitleView:(RNNTopBarOptions *)options
70
71
  perform:(RNNReactViewReadyCompletionBlock)readyBlock {
71
72
  UIViewController<RNNLayoutProtocol> *viewController = self.boundViewController;
72
- if (![options.title.component.waitForRender withDefault:NO] && readyBlock) {
73
+ if (![options.title.component.waitForRender withDefault: [RNNUtils getDefaultWaitForRender]] && readyBlock) {
73
74
  readyBlock();
74
75
  readyBlock = nil;
75
76
  }
@@ -88,8 +89,6 @@
88
89
 
89
90
  viewController.navigationItem.titleView = nil;
90
91
  viewController.navigationItem.titleView = _customTitleView;
91
- [_customTitleView componentWillAppear];
92
- [_customTitleView componentDidAppear];
93
92
  } else {
94
93
  [_customTitleView removeFromSuperview];
95
94
  if (readyBlock) {
@@ -1,4 +1,5 @@
1
1
  #import "TransitionOptions.h"
2
+ #import "RNNUtils.h"
2
3
 
3
4
  @implementation TransitionOptions
4
5
 
@@ -15,7 +16,7 @@
15
16
  self.rotationX = [[TransitionDetailsOptions alloc] initWithDict:dict[@"rotationX"]];
16
17
  self.rotationY = [[TransitionDetailsOptions alloc] initWithDict:dict[@"rotationY"]];
17
18
 
18
- self.waitForRender = [BoolParser parse:dict key:@"waitForRender"];
19
+ self.waitForRender = [Bool withValue:[[BoolParser parse:dict key:@"waitForRender"] withDefault:[RNNUtils getDefaultWaitForRender]]];
19
20
  self.enable = [BoolParser parse:dict key:@"enabled"];
20
21
 
21
22
  return self;
@@ -54,7 +55,7 @@
54
55
  }
55
56
 
56
57
  - (BOOL)shouldWaitForRender {
57
- return [self.waitForRender withDefault:NO] || self.hasAnimation;
58
+ return [self.waitForRender withDefault:[RNNUtils getDefaultWaitForRender]] || self.hasAnimation;
58
59
  }
59
60
 
60
61
  - (NSTimeInterval)maxDuration {
@@ -0,0 +1,13 @@
1
+ #ifndef RNNTurboCommandsHandler_h
2
+ #define RNNTurboCommandsHandler_h
3
+
4
+ @class RNNCommandsHandler;
5
+
6
+ @interface RNNTurboCommandsHandler : NSObject
7
+
8
+ +(RNNCommandsHandler *) sharedInstance;
9
+ +(void)setSharedInstance:(RNNCommandsHandler *) shared;
10
+
11
+ @end
12
+
13
+ #endif
@@ -0,0 +1,16 @@
1
+ #import <Foundation/Foundation.h>
2
+ #import "RNNTurboCommandsHandler.h"
3
+
4
+ static RNNCommandsHandler *_sharedCommandsHandler = nil;
5
+
6
+ @implementation RNNTurboCommandsHandler
7
+
8
+ + (void)setSharedInstance:(RNNCommandsHandler *)shared {
9
+ _sharedCommandsHandler = shared;
10
+ }
11
+
12
+ + (RNNCommandsHandler *)sharedInstance {
13
+ return _sharedCommandsHandler;
14
+ }
15
+
16
+ @end
@@ -0,0 +1,14 @@
1
+ #ifdef RCT_NEW_ARCH_ENABLED
2
+ #import "RNNEventEmitter.h"
3
+ #import <rnnavigation/rnnavigation.h>
4
+
5
+ @class RCTHost;
6
+
7
+ @interface RNNTurboEventEmitter : RNNEventEmitter <NativeRNNTurboEventEmitterSpec>
8
+
9
+ - (void)setHost:(RCTHost *)host;
10
+
11
+ @property(nonatomic, strong, readonly) RCTHost *host;
12
+
13
+ @end
14
+ #endif
@@ -0,0 +1,22 @@
1
+ #ifdef RCT_NEW_ARCH_ENABLED
2
+ #import "RNNTurboEventEmitter.h"
3
+
4
+ @implementation RNNTurboEventEmitter {}
5
+
6
+ RCT_EXPORT_MODULE()
7
+
8
+ - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
9
+ (const facebook::react::ObjCTurboModule::InitParams &)params
10
+ {
11
+ return std::make_shared<facebook::react::NativeRNNTurboEventEmitterSpecJSI>(params);
12
+ }
13
+
14
+ - (void)setHost:(RCTHost *)host {
15
+ if (_host != nil) {
16
+ return;
17
+ }
18
+ _host = host;
19
+ }
20
+
21
+ @end
22
+ #endif
@@ -0,0 +1,23 @@
1
+
2
+ #ifndef RNNTurboManager_h
3
+ #define RNNTurboManager_h
4
+
5
+ #import <Foundation/Foundation.h>
6
+
7
+ @class RCTHost;
8
+
9
+ typedef UIViewController * (^RNNExternalHostViewCreator)(NSDictionary *props, RCTHost *host);
10
+
11
+ @interface RNNTurboManager : NSObject
12
+
13
+ @property(readonly, nonatomic, strong) RCTHost *host;
14
+
15
+ - (instancetype)initWithHost:(RCTHost *)host mainWindow:(UIWindow *)mainWindow;
16
+
17
+ - (UIViewController *)findComponentForId:(NSString *)componentId;
18
+
19
+ - (void)registerExternalComponent:(NSString *)name callback:(RNNExternalHostViewCreator)callback;
20
+
21
+ @end
22
+
23
+ #endif