1#import "RNSConvert.h" 2 3#ifdef RCT_NEW_ARCH_ENABLED 4@implementation RNSConvert 5 6+ (RNSScreenStackPresentation)RNSScreenStackPresentationFromCppEquivalent: 7 (facebook::react::RNSScreenStackPresentation)stackPresentation 8{ 9 switch (stackPresentation) { 10 case facebook::react::RNSScreenStackPresentation::Push: 11 return RNSScreenStackPresentationPush; 12 case facebook::react::RNSScreenStackPresentation::Modal: 13 return RNSScreenStackPresentationModal; 14 case facebook::react::RNSScreenStackPresentation::FullScreenModal: 15 return RNSScreenStackPresentationFullScreenModal; 16 case facebook::react::RNSScreenStackPresentation::FormSheet: 17 return RNSScreenStackPresentationFormSheet; 18 case facebook::react::RNSScreenStackPresentation::ContainedModal: 19 return RNSScreenStackPresentationContainedModal; 20 case facebook::react::RNSScreenStackPresentation::TransparentModal: 21 return RNSScreenStackPresentationTransparentModal; 22 case facebook::react::RNSScreenStackPresentation::ContainedTransparentModal: 23 return RNSScreenStackPresentationContainedTransparentModal; 24 } 25} 26 27+ (RNSScreenStackAnimation)RNSScreenStackAnimationFromCppEquivalent: 28 (facebook::react::RNSScreenStackAnimation)stackAnimation 29{ 30 switch (stackAnimation) { 31 // these three are intentionally grouped 32 case facebook::react::RNSScreenStackAnimation::Slide_from_right: 33 case facebook::react::RNSScreenStackAnimation::Slide_from_left: 34 case facebook::react::RNSScreenStackAnimation::Default: 35 return RNSScreenStackAnimationDefault; 36 case facebook::react::RNSScreenStackAnimation::Flip: 37 return RNSScreenStackAnimationFlip; 38 case facebook::react::RNSScreenStackAnimation::Simple_push: 39 return RNSScreenStackAnimationSimplePush; 40 case facebook::react::RNSScreenStackAnimation::None: 41 return RNSScreenStackAnimationNone; 42 case facebook::react::RNSScreenStackAnimation::Fade: 43 return RNSScreenStackAnimationFade; 44 case facebook::react::RNSScreenStackAnimation::Slide_from_bottom: 45 return RNSScreenStackAnimationSlideFromBottom; 46 case facebook::react::RNSScreenStackAnimation::Fade_from_bottom: 47 return RNSScreenStackAnimationFadeFromBottom; 48 } 49} 50 51+ (RNSScreenStackHeaderSubviewType)RNSScreenStackHeaderSubviewTypeFromCppEquivalent: 52 (facebook::react::RNSScreenStackHeaderSubviewType)subviewType 53{ 54 switch (subviewType) { 55 case facebook::react::RNSScreenStackHeaderSubviewType::Left: 56 return RNSScreenStackHeaderSubviewTypeLeft; 57 case facebook::react::RNSScreenStackHeaderSubviewType::Right: 58 return RNSScreenStackHeaderSubviewTypeRight; 59 case facebook::react::RNSScreenStackHeaderSubviewType::Title: 60 return RNSScreenStackHeaderSubviewTypeTitle; 61 case facebook::react::RNSScreenStackHeaderSubviewType::Center: 62 return RNSScreenStackHeaderSubviewTypeCenter; 63 case facebook::react::RNSScreenStackHeaderSubviewType::SearchBar: 64 return RNSScreenStackHeaderSubviewTypeSearchBar; 65 case facebook::react::RNSScreenStackHeaderSubviewType::Back: 66 return RNSScreenStackHeaderSubviewTypeBackButton; 67 } 68} 69 70+ (RNSScreenReplaceAnimation)RNSScreenReplaceAnimationFromCppEquivalent: 71 (facebook::react::RNSScreenReplaceAnimation)replaceAnimation 72{ 73 switch (replaceAnimation) { 74 case facebook::react::RNSScreenReplaceAnimation::Pop: 75 return RNSScreenReplaceAnimationPop; 76 case facebook::react::RNSScreenReplaceAnimation::Push: 77 return RNSScreenReplaceAnimationPush; 78 } 79} 80 81+ (RNSScreenSwipeDirection)RNSScreenSwipeDirectionFromCppEquivalent: 82 (facebook::react::RNSScreenSwipeDirection)swipeDirection 83{ 84 switch (swipeDirection) { 85 case facebook::react::RNSScreenSwipeDirection::Horizontal: 86 return RNSScreenSwipeDirectionHorizontal; 87 case facebook::react::RNSScreenSwipeDirection::Vertical: 88 return RNSScreenSwipeDirectionVertical; 89 } 90} 91 92+ (RNSScreenDetentType)RNSScreenDetentTypeFromAllowedDetents: 93 (facebook::react::RNSScreenSheetAllowedDetents)allowedDetents 94{ 95 switch (allowedDetents) { 96 case facebook::react::RNSScreenSheetAllowedDetents::All: 97 return RNSScreenDetentTypeAll; 98 case facebook::react::RNSScreenSheetAllowedDetents::Large: 99 return RNSScreenDetentTypeLarge; 100 case facebook::react::RNSScreenSheetAllowedDetents::Medium: 101 return RNSScreenDetentTypeMedium; 102 } 103} 104 105+ (RNSScreenDetentType)RNSScreenDetentTypeFromLargestUndimmedDetent: 106 (facebook::react::RNSScreenSheetLargestUndimmedDetent)detent 107{ 108 switch (detent) { 109 case facebook::react::RNSScreenSheetLargestUndimmedDetent::All: 110 return RNSScreenDetentTypeAll; 111 case facebook::react::RNSScreenSheetLargestUndimmedDetent::Large: 112 return RNSScreenDetentTypeLarge; 113 case facebook::react::RNSScreenSheetLargestUndimmedDetent::Medium: 114 return RNSScreenDetentTypeMedium; 115 } 116} 117 118+ (NSDictionary *)gestureResponseDistanceDictFromCppStruct: 119 (const facebook::react::RNSScreenGestureResponseDistanceStruct &)gestureResponseDistance 120{ 121 return @{ 122 @"start" : @(gestureResponseDistance.start), 123 @"end" : @(gestureResponseDistance.end), 124 @"top" : @(gestureResponseDistance.top), 125 @"bottom" : @(gestureResponseDistance.bottom), 126 }; 127} 128 129+ (UITextAutocapitalizationType)UITextAutocapitalizationTypeFromCppEquivalent: 130 (facebook::react::RNSSearchBarAutoCapitalize)autoCapitalize 131{ 132 switch (autoCapitalize) { 133 case facebook::react::RNSSearchBarAutoCapitalize::Words: 134 return UITextAutocapitalizationTypeWords; 135 case facebook::react::RNSSearchBarAutoCapitalize::Sentences: 136 return UITextAutocapitalizationTypeSentences; 137 case facebook::react::RNSSearchBarAutoCapitalize::Characters: 138 return UITextAutocapitalizationTypeAllCharacters; 139 case facebook::react::RNSSearchBarAutoCapitalize::None: 140 return UITextAutocapitalizationTypeNone; 141 } 142} 143 144@end 145 146#endif // RCT_NEW_ARCH_ENABLED 147