#import #import #import #import "RNSScreenContainer.h" typedef NS_ENUM(NSInteger, RNSScreenStackPresentation) { RNSScreenStackPresentationPush, RNSScreenStackPresentationModal, RNSScreenStackPresentationTransparentModal, RNSScreenStackPresentationContainedModal, RNSScreenStackPresentationContainedTransparentModal, RNSScreenStackPresentationFullScreenModal, RNSScreenStackPresentationFormSheet }; typedef NS_ENUM(NSInteger, RNSScreenStackAnimation) { RNSScreenStackAnimationDefault, RNSScreenStackAnimationNone, RNSScreenStackAnimationFade, RNSScreenStackAnimationFadeFromBottom, RNSScreenStackAnimationFlip, RNSScreenStackAnimationSlideFromBottom, RNSScreenStackAnimationSimplePush, }; typedef NS_ENUM(NSInteger, RNSScreenReplaceAnimation) { RNSScreenReplaceAnimationPop, RNSScreenReplaceAnimationPush, }; typedef NS_ENUM(NSInteger, RNSScreenSwipeDirection) { RNSScreenSwipeDirectionHorizontal, RNSScreenSwipeDirectionVertical, }; typedef NS_ENUM(NSInteger, RNSActivityState) { RNSActivityStateInactive = 0, RNSActivityStateTransitioningOrBelowTop = 1, RNSActivityStateOnTop = 2 }; typedef NS_ENUM(NSInteger, RNSStatusBarStyle) { RNSStatusBarStyleAuto, RNSStatusBarStyleInverted, RNSStatusBarStyleLight, RNSStatusBarStyleDark, }; typedef NS_ENUM(NSInteger, RNSWindowTrait) { RNSWindowTraitStyle, RNSWindowTraitAnimation, RNSWindowTraitHidden, RNSWindowTraitOrientation, RNSWindowTraitHomeIndicatorHidden, }; @interface RCTConvert (RNSScreen) + (RNSScreenStackPresentation)RNSScreenStackPresentation:(id)json; + (RNSScreenStackAnimation)RNSScreenStackAnimation:(id)json; #if !TARGET_OS_TV + (RNSStatusBarStyle)RNSStatusBarStyle:(id)json; + (UIInterfaceOrientationMask)UIInterfaceOrientationMask:(id)json; #endif @end @interface RNSScreen : UIViewController - (instancetype)initWithView:(UIView *)view; - (void)notifyFinishTransitioning; - (UIViewController *)findChildVCForConfigAndTrait:(RNSWindowTrait)trait includingModals:(BOOL)includingModals; @end @interface RNSScreenManager : RCTViewManager @end @interface RNSScreenView : RCTView @property (nonatomic, copy) RCTDirectEventBlock onAppear; @property (nonatomic, copy) RCTDirectEventBlock onDisappear; @property (nonatomic, copy) RCTDirectEventBlock onDismissed; @property (nonatomic, copy) RCTDirectEventBlock onWillAppear; @property (nonatomic, copy) RCTDirectEventBlock onWillDisappear; @property (nonatomic, copy) RCTDirectEventBlock onNativeDismissCancelled; @property (nonatomic, copy) RCTDirectEventBlock onTransitionProgress; @property (weak, nonatomic) UIView *reactSuperview; @property (nonatomic, retain) UIViewController *controller; @property (nonatomic, readonly) BOOL dismissed; @property (nonatomic) int activityState; @property (nonatomic) BOOL gestureEnabled; @property (nonatomic) RNSScreenStackAnimation stackAnimation; @property (nonatomic) RNSScreenStackPresentation stackPresentation; @property (nonatomic) RNSScreenReplaceAnimation replaceAnimation; @property (nonatomic) RNSScreenSwipeDirection swipeDirection; @property (nonatomic) BOOL preventNativeDismiss; @property (nonatomic) BOOL hasOrientationSet; @property (nonatomic) BOOL hasStatusBarStyleSet; @property (nonatomic) BOOL hasStatusBarAnimationSet; @property (nonatomic) BOOL hasStatusBarHiddenSet; @property (nonatomic) BOOL hasHomeIndicatorHiddenSet; @property (nonatomic) BOOL customAnimationOnSwipe; @property (nonatomic) BOOL fullScreenSwipeEnabled; @property (nonatomic, retain) NSNumber *transitionDuration; #if !TARGET_OS_TV @property (nonatomic) RNSStatusBarStyle statusBarStyle; @property (nonatomic) UIStatusBarAnimation statusBarAnimation; @property (nonatomic) BOOL statusBarHidden; @property (nonatomic) UIInterfaceOrientationMask screenOrientation; @property (nonatomic) BOOL homeIndicatorHidden; #endif - (void)notifyFinishTransitioning; - (void)notifyTransitionProgress:(double)progress closing:(BOOL)closing goingForward:(BOOL)goingForward; @end @interface UIView (RNSScreen) - (UIViewController *)parentViewController; @end