react-native-navigation 8.0.0 → 8.1.0-alpha01
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ReactNativeNavigation.podspec +13 -12
- package/lib/android/app/src/main/java/com/reactnativenavigation/NavigationApplication.java +1 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/LayoutFactory.java +13 -14
- package/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationModule.java +4 -6
- package/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationPackage.kt +5 -4
- package/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationReactInitializer.java +20 -21
- package/lib/android/app/src/main/java/com/reactnativenavigation/react/ReactComponentViewCreator.java +1 -7
- package/lib/android/app/src/main/java/com/reactnativenavigation/react/ReactView.java +38 -28
- package/lib/android/app/src/main/java/com/reactnativenavigation/react/modal/ModalFrameLayout.kt +1 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/react/modal/ModalLayoutController.kt +4 -6
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/externalcomponent/ExternalComponentCreator.java +1 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/externalcomponent/ExternalComponentViewController.java +2 -4
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/navigator/Navigator.java +2 -2
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/RootPresenter.java +1 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/component/ComponentViewCreator.java +1 -8
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/TopBarBackgroundView.java +2 -2
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/TopBarBackgroundViewCreator.java +1 -7
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarButtonCreator.java +1 -8
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactButtonView.java +3 -3
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactViewCreator.java +1 -7
- package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/react/ReactGateway.java +10 -11
- package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +8 -42
- package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactView.kt +2 -2
- package/lib/dist/src/adapters/NativeCommandsSender.js +3 -2
- package/lib/dist/src/adapters/NativeEventsReceiver.js +4 -2
- package/lib/dist/src/adapters/NativeRNNTurboEventEmitter.d.ts +7 -0
- package/lib/dist/src/adapters/NativeRNNTurboEventEmitter.js +13 -0
- package/lib/dist/src/adapters/NativeRNNTurboModule.d.ts +28 -0
- package/lib/dist/src/adapters/NativeRNNTurboModule.js +16 -0
- package/lib/dist/src/commands/Deprecations.js +2 -2
- package/lib/dist/src/components/Modal.js +11 -2
- package/lib/ios/{AnimatedImageView.m → AnimatedImageView.mm} +1 -1
- package/lib/ios/{AnimatedReactView.m → AnimatedReactView.mm} +8 -1
- package/lib/ios/{AnimatedTextView.m → AnimatedTextView.mm} +21 -1
- package/lib/ios/BoolParser.h +1 -1
- package/lib/ios/{BottomTabsBasePresenter.m → BottomTabsBasePresenter.mm} +1 -1
- package/lib/ios/ColorParser.h +1 -1
- package/lib/ios/Constants.h +8 -0
- package/lib/ios/{Constants.m → Constants.mm} +12 -0
- package/lib/ios/NumberParser.h +1 -1
- package/lib/ios/RNNAppDelegate.h +8 -15
- package/lib/ios/RNNAppDelegate.mm +78 -81
- package/lib/ios/{RNNBottomTabsController.m → RNNBottomTabsController.mm} +1 -1
- package/lib/ios/RNNBridgeEventEmitter.h +4 -0
- package/lib/ios/RNNBridgeEventEmitter.mm +7 -0
- package/lib/ios/RNNBridgeManager.mm +71 -71
- package/lib/ios/{RNNButtonBuilder.m → RNNButtonBuilder.mm} +2 -2
- package/lib/ios/{RNNButtonOptions.m → RNNButtonOptions.mm} +2 -2
- package/lib/ios/{RNNButtonsParser.m → RNNButtonsParser.mm} +1 -1
- package/lib/ios/RNNCommandsHandler.h +8 -2
- package/lib/ios/{RNNCommandsHandler.m → RNNCommandsHandler.mm} +29 -10
- package/lib/ios/{RNNComponentOptions.m → RNNComponentOptions.mm} +3 -2
- package/lib/ios/{RNNComponentPresenter.m → RNNComponentPresenter.mm} +1 -1
- package/lib/ios/{RNNComponentViewController.m → RNNComponentViewController.mm} +0 -4
- package/lib/ios/RNNCustomTitleView.h +14 -4
- package/lib/ios/{RNNCustomTitleView.m → RNNCustomTitleView.mm} +8 -2
- package/lib/ios/RNNDotIndicatorPresenter.h +1 -1
- package/lib/ios/RNNElementFinder.h +2 -0
- package/lib/ios/RNNElementFinder.mm +44 -0
- package/lib/ios/RNNEventEmitter.h +1 -2
- package/lib/ios/{RNNEventEmitter.m → RNNEventEmitter.mm} +1 -5
- package/lib/ios/RNNExternalComponentStore.h +5 -0
- package/lib/ios/{RNNExternalComponentStore.m → RNNExternalComponentStore.mm} +12 -0
- package/lib/ios/{RNNFontAttributesCreator.m → RNNFontAttributesCreator.mm} +1 -1
- package/lib/ios/{RNNIconBackgroundOptions.m → RNNIconBackgroundOptions.mm} +1 -1
- package/lib/ios/{RNNInsetsOptions.m → RNNInsetsOptions.mm} +2 -2
- package/lib/ios/RNNModalManager.h +6 -0
- package/lib/ios/{RNNModalManager.m → RNNModalManager.mm} +71 -2
- package/lib/ios/{RNNNavigationOptions.m → RNNNavigationOptions.mm} +1 -1
- package/lib/ios/{RNNPushAnimation.m → RNNPushAnimation.mm} +1 -1
- package/lib/ios/RNNReactButtonView.h +4 -0
- package/lib/ios/RNNReactButtonView.mm +29 -0
- package/lib/ios/RNNReactRootViewCreator.h +4 -0
- package/lib/ios/{RNNReactRootViewCreator.m → RNNReactRootViewCreator.mm} +31 -8
- package/lib/ios/RNNReactView.h +64 -12
- package/lib/ios/RNNReactView.mm +119 -15
- package/lib/ios/{RNNScreenTransition.m → RNNScreenTransition.mm} +3 -2
- package/lib/ios/RNNSideMenu/MMDrawerController/{MMDrawerController.m → MMDrawerController.mm} +1 -1
- package/lib/ios/{RNNSideMenuChildVC.h → RNNSideMenuChildViewController.h} +1 -1
- package/lib/ios/{RNNSideMenuChildVC.m → RNNSideMenuChildViewController.mm} +4 -3
- package/lib/ios/{RNNSideMenuPresenter.m → RNNSideMenuPresenter.mm} +3 -3
- package/lib/ios/{RNNSideMenuController.h → RNNSideMenuViewController.h} +5 -5
- package/lib/ios/{RNNSideMenuController.m → RNNSideMenuViewController.mm} +8 -8
- package/lib/ios/{RNNSplashScreen.h → RNNSplashScreenViewController.h} +1 -1
- package/lib/ios/{RNNSplashScreen.m → RNNSplashScreenViewController.mm} +5 -5
- package/lib/ios/RNNSplitViewController.h +0 -1
- package/lib/ios/{RNNStackPresenter.m → RNNStackPresenter.mm} +2 -1
- package/lib/ios/RNNUIBarButtonItem.h +7 -1
- package/lib/ios/{RNNUIBarButtonItem.m → RNNUIBarButtonItem.mm} +17 -25
- package/lib/ios/RNNUtils.h +1 -0
- package/lib/ios/{RNNUtils.m → RNNUtils.mm} +8 -0
- package/lib/ios/{RNNControllerFactory.h → RNNViewControllerFactory.h} +10 -1
- package/lib/ios/{RNNControllerFactory.m → RNNViewControllerFactory.mm} +37 -7
- package/lib/ios/ReactNativeNavigation.h +13 -6
- package/lib/ios/ReactNativeNavigation.mm +117 -0
- package/lib/ios/ReactNativeNavigation.xcodeproj/project.pbxproj +976 -1166
- package/lib/ios/ScreenAnimationController.h +27 -9
- package/lib/ios/ScreenAnimationController.mm +180 -0
- package/lib/ios/SharedElementAnimator.mm +98 -0
- package/lib/ios/SideMenuOpenMode.h +1 -1
- package/lib/ios/StackControllerDelegate.h +10 -0
- package/lib/ios/{StackControllerDelegate.m → StackControllerDelegate.mm} +45 -1
- package/lib/ios/{TopBarTitlePresenter.m → TopBarTitlePresenter.mm} +2 -3
- package/lib/ios/{TransitionOptions.m → TransitionOptions.mm} +3 -2
- package/lib/ios/TurboModules/RNNTurboCommandsHandler.h +13 -0
- package/lib/ios/TurboModules/RNNTurboCommandsHandler.mm +16 -0
- package/lib/ios/TurboModules/RNNTurboEventEmitter.h +14 -0
- package/lib/ios/TurboModules/RNNTurboEventEmitter.mm +22 -0
- package/lib/ios/TurboModules/RNNTurboManager.h +23 -0
- package/lib/ios/TurboModules/RNNTurboManager.mm +114 -0
- package/lib/ios/TurboModules/RNNTurboModule.h +8 -0
- package/lib/ios/TurboModules/RNNTurboModule.mm +177 -0
- package/lib/ios/UISplitViewController+RNNOptions.h +1 -1
- package/lib/ios/{UISplitViewController+RNNOptions.m → UISplitViewController+RNNOptions.mm} +0 -1
- package/lib/ios/UIViewController+SideMenuController.h +2 -2
- package/lib/ios/{UIViewController+SideMenuController.m → UIViewController+SideMenuController.mm} +3 -3
- package/lib/ios/UIViewController+SideMenuViewController.h +8 -0
- package/lib/ios/Utils/{UIView+Utils.m → UIView+Utils.mm} +14 -0
- package/lib/src/adapters/NativeCommandsSender.ts +4 -2
- package/lib/src/adapters/NativeEventsReceiver.ts +6 -5
- package/lib/src/adapters/NativeRNNTurboEventEmitter.ts +18 -0
- package/lib/src/adapters/NativeRNNTurboModule.ts +47 -0
- package/lib/src/commands/Deprecations.ts +1 -1
- package/lib/src/components/Modal.tsx +23 -4
- package/metro.config.js +0 -1
- package/package.json +34 -6
- package/lib/ios/RNNElementFinder.m +0 -12
- package/lib/ios/RNNReactButtonView.m +0 -41
- package/lib/ios/RNNSwizzles.h +0 -13
- package/lib/ios/RNNSwizzles.m +0 -97
- package/lib/ios/ReactNativeNavigation.m +0 -85
- package/lib/ios/ScreenAnimationController.m +0 -139
- package/lib/ios/SharedElementAnimator.m +0 -83
- /package/lib/ios/{AnchorTransition.m → AnchorTransition.mm} +0 -0
- /package/lib/ios/{AnimatedUIImageView.m → AnimatedUIImageView.mm} +0 -0
- /package/lib/ios/{AnimatedViewFactory.m → AnimatedViewFactory.mm} +0 -0
- /package/lib/ios/{AnimationObserver.m → AnimationObserver.mm} +0 -0
- /package/lib/ios/{BaseAnimator.m → BaseAnimator.mm} +0 -0
- /package/lib/ios/{Bool.m → Bool.mm} +0 -0
- /package/lib/ios/{BoolParser.m → BoolParser.mm} +0 -0
- /package/lib/ios/{BottomTabPresenter.m → BottomTabPresenter.mm} +0 -0
- /package/lib/ios/{BottomTabPresenterCreator.m → BottomTabPresenterCreator.mm} +0 -0
- /package/lib/ios/{BottomTabsAfterInitialTabAttacher.m → BottomTabsAfterInitialTabAttacher.mm} +0 -0
- /package/lib/ios/{BottomTabsAppearancePresenter.m → BottomTabsAppearancePresenter.mm} +0 -0
- /package/lib/ios/{BottomTabsAttachMode.m → BottomTabsAttachMode.mm} +0 -0
- /package/lib/ios/{BottomTabsAttachModeFactory.m → BottomTabsAttachModeFactory.mm} +0 -0
- /package/lib/ios/{BottomTabsBaseAttacher.m → BottomTabsBaseAttacher.mm} +0 -0
- /package/lib/ios/{BottomTabsOnSwitchToTabAttacher.m → BottomTabsOnSwitchToTabAttacher.mm} +0 -0
- /package/lib/ios/{BottomTabsPresenterCreator.m → BottomTabsPresenterCreator.mm} +0 -0
- /package/lib/ios/{BottomTabsTogetherAttacher.m → BottomTabsTogetherAttacher.mm} +0 -0
- /package/lib/ios/{BoundsTransition.m → BoundsTransition.mm} +0 -0
- /package/lib/ios/{CenterTransition.m → CenterTransition.mm} +0 -0
- /package/lib/ios/{Color+Interpolation.m → Color+Interpolation.mm} +0 -0
- /package/lib/ios/{Color.m → Color.mm} +0 -0
- /package/lib/ios/{ColorParser.m → ColorParser.mm} +0 -0
- /package/lib/ios/{ColorTransition.m → ColorTransition.mm} +0 -0
- /package/lib/ios/{CornerRadiusTransition.m → CornerRadiusTransition.mm} +0 -0
- /package/lib/ios/{DeprecationOptions.m → DeprecationOptions.mm} +0 -0
- /package/lib/ios/{DictionaryParser.m → DictionaryParser.mm} +0 -0
- /package/lib/ios/{DisplayLinkAnimator.m → DisplayLinkAnimator.mm} +0 -0
- /package/lib/ios/{DotIndicatorOptions.m → DotIndicatorOptions.mm} +0 -0
- /package/lib/ios/{DotIndicatorParser.m → DotIndicatorParser.mm} +0 -0
- /package/lib/ios/{Double.m → Double.mm} +0 -0
- /package/lib/ios/{DoubleParser.m → DoubleParser.mm} +0 -0
- /package/lib/ios/{ElementAlphaTransition.m → ElementAlphaTransition.mm} +0 -0
- /package/lib/ios/{ElementAnimator.m → ElementAnimator.mm} +0 -0
- /package/lib/ios/{ElementBaseTransition.m → ElementBaseTransition.mm} +0 -0
- /package/lib/ios/{ElementFrameTransition.m → ElementFrameTransition.mm} +0 -0
- /package/lib/ios/{ElementHorizontalTransition.m → ElementHorizontalTransition.mm} +0 -0
- /package/lib/ios/{ElementTransitionOptions.m → ElementTransitionOptions.mm} +0 -0
- /package/lib/ios/{ElementTransitionsCreator.m → ElementTransitionsCreator.mm} +0 -0
- /package/lib/ios/{ElementVerticalTransition.m → ElementVerticalTransition.mm} +0 -0
- /package/lib/ios/{Enum.m → Enum.mm} +0 -0
- /package/lib/ios/{EnumParser.m → EnumParser.mm} +0 -0
- /package/lib/ios/{FloatTransition.m → FloatTransition.mm} +0 -0
- /package/lib/ios/{HorizontalScaleTransition.m → HorizontalScaleTransition.mm} +0 -0
- /package/lib/ios/{HorizontalTranslationTransition.m → HorizontalTranslationTransition.mm} +0 -0
- /package/lib/ios/{Image.m → Image.mm} +0 -0
- /package/lib/ios/{ImageParser.m → ImageParser.mm} +0 -0
- /package/lib/ios/{IntNumber.m → IntNumber.mm} +0 -0
- /package/lib/ios/{IntNumberParser.m → IntNumberParser.mm} +0 -0
- /package/lib/ios/{InteractivePopGestureDelegate.m → InteractivePopGestureDelegate.mm} +0 -0
- /package/lib/ios/Interpolators/{AccelerateDecelerateInterpolator.m → AccelerateDecelerateInterpolator.mm} +0 -0
- /package/lib/ios/Interpolators/{AccelerateInterpolator.m → AccelerateInterpolator.mm} +0 -0
- /package/lib/ios/Interpolators/{DecelerateAccelerateInterpolator.m → DecelerateAccelerateInterpolator.mm} +0 -0
- /package/lib/ios/Interpolators/{DecelerateInterpolator.m → DecelerateInterpolator.mm} +0 -0
- /package/lib/ios/Interpolators/{FastOutSlowIn.m → FastOutSlowIn.mm} +0 -0
- /package/lib/ios/Interpolators/{LinearInterpolator.m → LinearInterpolator.mm} +0 -0
- /package/lib/ios/Interpolators/{OvershootInterpolator.m → OvershootInterpolator.mm} +0 -0
- /package/lib/ios/Interpolators/{SpringInterpolator.m → SpringInterpolator.mm} +0 -0
- /package/lib/ios/{LNInterpolable.m → LNInterpolable.mm} +0 -0
- /package/lib/ios/{NSArray+utils.m → NSArray+utils.mm} +0 -0
- /package/lib/ios/{NoColor.m → NoColor.mm} +0 -0
- /package/lib/ios/{NullBool.m → NullBool.mm} +0 -0
- /package/lib/ios/{NullColor.m → NullColor.mm} +0 -0
- /package/lib/ios/{NullDictionary.m → NullDictionary.mm} +0 -0
- /package/lib/ios/{NullDouble.m → NullDouble.mm} +0 -0
- /package/lib/ios/{NullEnum.m → NullEnum.mm} +0 -0
- /package/lib/ios/{NullImage.m → NullImage.mm} +0 -0
- /package/lib/ios/{NullIntNumber.m → NullIntNumber.mm} +0 -0
- /package/lib/ios/{NullNumber.m → NullNumber.mm} +0 -0
- /package/lib/ios/{NullText.m → NullText.mm} +0 -0
- /package/lib/ios/{Number.m → Number.mm} +0 -0
- /package/lib/ios/{NumberParser.m → NumberParser.mm} +0 -0
- /package/lib/ios/{OptionsArrayParser.m → OptionsArrayParser.mm} +0 -0
- /package/lib/ios/{Param.m → Param.mm} +0 -0
- /package/lib/ios/{PathTransition.m → PathTransition.mm} +0 -0
- /package/lib/ios/{RCTConvert+Interpolation.m → RCTConvert+Interpolation.mm} +0 -0
- /package/lib/ios/{RCTConvert+SideMenuOpenGestureMode.m → RCTConvert+SideMenuOpenGestureMode.mm} +0 -0
- /package/lib/ios/{RCTConvert+UIBarButtonSystemItem.m → RCTConvert+UIBarButtonSystemItem.mm} +0 -0
- /package/lib/ios/{RCTConvert+UIFontWeight.m → RCTConvert+UIFontWeight.mm} +0 -0
- /package/lib/ios/{RCTHelpers.m → RCTHelpers.mm} +0 -0
- /package/lib/ios/{RNNAnimationsOptions.m → RNNAnimationsOptions.mm} +0 -0
- /package/lib/ios/{RNNBackButtonOptions.m → RNNBackButtonOptions.mm} +0 -0
- /package/lib/ios/{RNNBackgroundOptions.m → RNNBackgroundOptions.mm} +0 -0
- /package/lib/ios/{RNNBaseIconCreator.m → RNNBaseIconCreator.mm} +0 -0
- /package/lib/ios/{RNNBasePresenter.m → RNNBasePresenter.mm} +0 -0
- /package/lib/ios/{RNNBottomTabOptions.m → RNNBottomTabOptions.mm} +0 -0
- /package/lib/ios/{RNNBottomTabsOptions.m → RNNBottomTabsOptions.mm} +0 -0
- /package/lib/ios/{RNNBottomTabsPresenter.m → RNNBottomTabsPresenter.mm} +0 -0
- /package/lib/ios/{RNNBridgeModule.m → RNNBridgeModule.mm} +0 -0
- /package/lib/ios/{RNNButtonsPresenter.m → RNNButtonsPresenter.mm} +0 -0
- /package/lib/ios/{RNNComponentRootView.m → RNNComponentRootView.mm} +0 -0
- /package/lib/ios/{RNNComponentView.m → RNNComponentView.mm} +0 -0
- /package/lib/ios/{RNNConvert.m → RNNConvert.mm} +0 -0
- /package/lib/ios/{RNNDefaultOptionsHelper.m → RNNDefaultOptionsHelper.mm} +0 -0
- /package/lib/ios/{RNNDictionary.m → RNNDictionary.mm} +0 -0
- /package/lib/ios/{RNNDotIndicatorPresenter.m → RNNDotIndicatorPresenter.mm} +0 -0
- /package/lib/ios/{RNNDynamicIconCreator.m → RNNDynamicIconCreator.mm} +0 -0
- /package/lib/ios/{RNNElement.m → RNNElement.mm} +0 -0
- /package/lib/ios/{RNNElementView.m → RNNElementView.mm} +0 -0
- /package/lib/ios/{RNNEnterExitAnimation.m → RNNEnterExitAnimation.mm} +0 -0
- /package/lib/ios/{RNNErrorHandler.m → RNNErrorHandler.mm} +0 -0
- /package/lib/ios/{RNNExternalViewController.m → RNNExternalViewController.mm} +0 -0
- /package/lib/ios/{RNNIconCreator.m → RNNIconCreator.mm} +0 -0
- /package/lib/ios/{RNNIconDrawer.m → RNNIconDrawer.mm} +0 -0
- /package/lib/ios/{RNNInterpolator.m → RNNInterpolator.mm} +0 -0
- /package/lib/ios/{RNNLargeTitleOptions.m → RNNLargeTitleOptions.mm} +0 -0
- /package/lib/ios/{RNNLayoutInfo.m → RNNLayoutInfo.mm} +0 -0
- /package/lib/ios/{RNNLayoutManager.m → RNNLayoutManager.mm} +0 -0
- /package/lib/ios/{RNNLayoutNode.m → RNNLayoutNode.mm} +0 -0
- /package/lib/ios/{RNNLayoutOptions.m → RNNLayoutOptions.mm} +0 -0
- /package/lib/ios/{RNNModalHostViewManagerHandler.m → RNNModalHostViewManagerHandler.mm} +0 -0
- /package/lib/ios/{RNNModalManagerEventHandler.m → RNNModalManagerEventHandler.mm} +0 -0
- /package/lib/ios/{RNNModalOptions.m → RNNModalOptions.mm} +0 -0
- /package/lib/ios/{RNNOptions.m → RNNOptions.mm} +0 -0
- /package/lib/ios/{RNNOverlayManager.m → RNNOverlayManager.mm} +0 -0
- /package/lib/ios/{RNNOverlayOptions.m → RNNOverlayOptions.mm} +0 -0
- /package/lib/ios/{RNNOverlayWindow.m → RNNOverlayWindow.mm} +0 -0
- /package/lib/ios/{RNNPreviewOptions.m → RNNPreviewOptions.mm} +0 -0
- /package/lib/ios/{RNNReactBackgroundView.m → RNNReactBackgroundView.mm} +0 -0
- /package/lib/ios/{RNNReactComponentRegistry.m → RNNReactComponentRegistry.mm} +0 -0
- /package/lib/ios/{RNNReactTitleView.m → RNNReactTitleView.mm} +0 -0
- /package/lib/ios/{RNNScreenTransitionsCreator.m → RNNScreenTransitionsCreator.mm} +0 -0
- /package/lib/ios/{RNNScrollEdgeAppearanceBackgroundOptions.m → RNNScrollEdgeAppearanceBackgroundOptions.mm} +0 -0
- /package/lib/ios/{RNNScrollEdgeAppearanceOptions.m → RNNScrollEdgeAppearanceOptions.mm} +0 -0
- /package/lib/ios/{RNNSearchBarOptions.m → RNNSearchBarOptions.mm} +0 -0
- /package/lib/ios/{RNNSegmentedControl.m → RNNSegmentedControl.mm} +0 -0
- /package/lib/ios/{RNNSetRootAnimator.m → RNNSetRootAnimator.mm} +0 -0
- /package/lib/ios/{RNNShadowOptions.m → RNNShadowOptions.mm} +0 -0
- /package/lib/ios/{RNNSharedElementAnimationOptions.m → RNNSharedElementAnimationOptions.mm} +0 -0
- /package/lib/ios/RNNSideMenu/MMDrawerController/{MMDrawerBarButtonItem.m → MMDrawerBarButtonItem.mm} +0 -0
- /package/lib/ios/RNNSideMenu/MMDrawerController/{MMDrawerVisualState.m → MMDrawerVisualState.mm} +0 -0
- /package/lib/ios/RNNSideMenu/MMDrawerController/{MMExampleDrawerVisualStateManager.m → MMExampleDrawerVisualStateManager.mm} +0 -0
- /package/lib/ios/RNNSideMenu/MMDrawerController/{UIViewController+MMDrawerController.m → UIViewController+MMDrawerController.mm} +0 -0
- /package/lib/ios/{RNNSideMenuOptions.m → RNNSideMenuOptions.mm} +0 -0
- /package/lib/ios/{RNNSideMenuSideOptions.m → RNNSideMenuSideOptions.mm} +0 -0
- /package/lib/ios/{RNNSplitViewController.m → RNNSplitViewController.mm} +0 -0
- /package/lib/ios/{RNNSplitViewControllerPresenter.m → RNNSplitViewControllerPresenter.mm} +0 -0
- /package/lib/ios/{RNNSplitViewOptions.m → RNNSplitViewOptions.mm} +0 -0
- /package/lib/ios/{RNNStackController.m → RNNStackController.mm} +0 -0
- /package/lib/ios/{RNNStatusBarOptions.m → RNNStatusBarOptions.mm} +0 -0
- /package/lib/ios/{RNNSubtitleOptions.m → RNNSubtitleOptions.mm} +0 -0
- /package/lib/ios/{RNNTabBarItemCreator.m → RNNTabBarItemCreator.mm} +0 -0
- /package/lib/ios/{RNNTitleOptions.m → RNNTitleOptions.mm} +0 -0
- /package/lib/ios/{RNNTitleViewHelper.m → RNNTitleViewHelper.mm} +0 -0
- /package/lib/ios/{RNNTopBarOptions.m → RNNTopBarOptions.mm} +0 -0
- /package/lib/ios/{RNNTopTabOptions.m → RNNTopTabOptions.mm} +0 -0
- /package/lib/ios/{RNNTopTabsOptions.m → RNNTopTabsOptions.mm} +0 -0
- /package/lib/ios/{RNNTopTabsViewController.m → RNNTopTabsViewController.mm} +0 -0
- /package/lib/ios/{RNNTransitionStateHolder.m → RNNTransitionStateHolder.mm} +0 -0
- /package/lib/ios/{RNNUIBarBackButtonItem.m → RNNUIBarBackButtonItem.mm} +0 -0
- /package/lib/ios/{RNNViewLocation.m → RNNViewLocation.mm} +0 -0
- /package/lib/ios/{RectTransition.m → RectTransition.mm} +0 -0
- /package/lib/ios/{RotationTransition.m → RotationTransition.mm} +0 -0
- /package/lib/ios/{ScreenReversedAnimationController.m → ScreenReversedAnimationController.mm} +0 -0
- /package/lib/ios/{SharedElementTransition.m → SharedElementTransition.mm} +0 -0
- /package/lib/ios/{SharedElementTransitionOptions.m → SharedElementTransitionOptions.mm} +0 -0
- /package/lib/ios/{SideMenuOpenGestureModeParser.m → SideMenuOpenGestureModeParser.mm} +0 -0
- /package/lib/ios/{SideMenuOpenMode.m → SideMenuOpenMode.mm} +0 -0
- /package/lib/ios/{TabBarItemAppearanceCreator.m → TabBarItemAppearanceCreator.mm} +0 -0
- /package/lib/ios/{TabBarItemIOS15Creator.m → TabBarItemIOS15Creator.mm} +0 -0
- /package/lib/ios/{Text.m → Text.mm} +0 -0
- /package/lib/ios/{TextParser.m → TextParser.mm} +0 -0
- /package/lib/ios/{TextStorageTransition.m → TextStorageTransition.mm} +0 -0
- /package/lib/ios/{TimeInterval.m → TimeInterval.mm} +0 -0
- /package/lib/ios/{TimeIntervalParser.m → TimeIntervalParser.mm} +0 -0
- /package/lib/ios/{TopBarAppearancePresenter.m → TopBarAppearancePresenter.mm} +0 -0
- /package/lib/ios/{TopBarPresenter.m → TopBarPresenter.mm} +0 -0
- /package/lib/ios/{TopBarPresenterCreator.m → TopBarPresenterCreator.mm} +0 -0
- /package/lib/ios/{TransformRectTransition.m → TransformRectTransition.mm} +0 -0
- /package/lib/ios/{Transition.m → Transition.mm} +0 -0
- /package/lib/ios/{TransitionDetailsOptions.m → TransitionDetailsOptions.mm} +0 -0
- /package/lib/ios/{UIImage+utils.m → UIImage+utils.mm} +0 -0
- /package/lib/ios/{UIImageView+Transition.m → UIImageView+Transition.mm} +0 -0
- /package/lib/ios/{UINavigationController+RNNCommands.m → UINavigationController+RNNCommands.mm} +0 -0
- /package/lib/ios/{UINavigationController+RNNOptions.m → UINavigationController+RNNOptions.mm} +0 -0
- /package/lib/ios/{UITabBar+utils.m → UITabBar+utils.mm} +0 -0
- /package/lib/ios/{UITabBarController+RNNOptions.m → UITabBarController+RNNOptions.mm} +0 -0
- /package/lib/ios/{UIViewController+LayoutProtocol.m → UIViewController+LayoutProtocol.mm} +0 -0
- /package/lib/ios/{UIViewController+RNNOptions.m → UIViewController+RNNOptions.mm} +0 -0
- /package/lib/ios/Utils/{UIColor+RNNUtils.m → UIColor+RNNUtils.mm} +0 -0
- /package/lib/ios/Utils/{UITabBarController+RNNUtils.m → UITabBarController+RNNUtils.mm} +0 -0
- /package/lib/ios/Utils/{UIViewController+Utils.m → UIViewController+Utils.mm} +0 -0
- /package/lib/ios/{VICMAImageView.m → VICMAImageView.mm} +0 -0
- /package/lib/ios/{VerticalRotationTransition.m → VerticalRotationTransition.mm} +0 -0
- /package/lib/ios/{VerticalScaleTransition.m → VerticalScaleTransition.mm} +0 -0
- /package/lib/ios/{VerticalTranslationTransition.m → VerticalTranslationTransition.mm} +0 -0
- /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
|
-
|
|
9
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
20
|
-
|
|
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,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
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|