You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

147 lines
5.7 KiB

#import "RNSConvert.h"
#ifdef RN_FABRIC_ENABLED
@implementation RNSConvert
+ (RNSScreenStackPresentation)RNSScreenStackPresentationFromCppEquivalent:
(facebook::react::RNSScreenStackPresentation)stackPresentation
{
switch (stackPresentation) {
case facebook::react::RNSScreenStackPresentation::Push:
return RNSScreenStackPresentationPush;
case facebook::react::RNSScreenStackPresentation::Modal:
return RNSScreenStackPresentationModal;
case facebook::react::RNSScreenStackPresentation::FullScreenModal:
return RNSScreenStackPresentationFullScreenModal;
case facebook::react::RNSScreenStackPresentation::FormSheet:
return RNSScreenStackPresentationFormSheet;
case facebook::react::RNSScreenStackPresentation::ContainedModal:
return RNSScreenStackPresentationContainedModal;
case facebook::react::RNSScreenStackPresentation::TransparentModal:
return RNSScreenStackPresentationTransparentModal;
case facebook::react::RNSScreenStackPresentation::ContainedTransparentModal:
return RNSScreenStackPresentationContainedTransparentModal;
}
}
+ (RNSScreenStackAnimation)RNSScreenStackAnimationFromCppEquivalent:
(facebook::react::RNSScreenStackAnimation)stackAnimation
{
switch (stackAnimation) {
// these three are intentionally grouped
case facebook::react::RNSScreenStackAnimation::Slide_from_right:
case facebook::react::RNSScreenStackAnimation::Slide_from_left:
case facebook::react::RNSScreenStackAnimation::Default:
return RNSScreenStackAnimationDefault;
case facebook::react::RNSScreenStackAnimation::Flip:
return RNSScreenStackAnimationFlip;
case facebook::react::RNSScreenStackAnimation::Simple_push:
return RNSScreenStackAnimationSimplePush;
case facebook::react::RNSScreenStackAnimation::None:
return RNSScreenStackAnimationNone;
case facebook::react::RNSScreenStackAnimation::Fade:
return RNSScreenStackAnimationFade;
case facebook::react::RNSScreenStackAnimation::Slide_from_bottom:
return RNSScreenStackAnimationSlideFromBottom;
case facebook::react::RNSScreenStackAnimation::Fade_from_bottom:
return RNSScreenStackAnimationFadeFromBottom;
}
}
+ (RNSScreenStackHeaderSubviewType)RNSScreenStackHeaderSubviewTypeFromCppEquivalent:
(facebook::react::RNSScreenStackHeaderSubviewType)subviewType
{
switch (subviewType) {
case facebook::react::RNSScreenStackHeaderSubviewType::Left:
return RNSScreenStackHeaderSubviewTypeLeft;
case facebook::react::RNSScreenStackHeaderSubviewType::Right:
return RNSScreenStackHeaderSubviewTypeRight;
case facebook::react::RNSScreenStackHeaderSubviewType::Title:
return RNSScreenStackHeaderSubviewTypeTitle;
case facebook::react::RNSScreenStackHeaderSubviewType::Center:
return RNSScreenStackHeaderSubviewTypeCenter;
case facebook::react::RNSScreenStackHeaderSubviewType::SearchBar:
return RNSScreenStackHeaderSubviewTypeSearchBar;
case facebook::react::RNSScreenStackHeaderSubviewType::Back:
return RNSScreenStackHeaderSubviewTypeBackButton;
}
}
+ (RNSScreenReplaceAnimation)RNSScreenReplaceAnimationFromCppEquivalent:
(facebook::react::RNSScreenReplaceAnimation)replaceAnimation
{
switch (replaceAnimation) {
case facebook::react::RNSScreenReplaceAnimation::Pop:
return RNSScreenReplaceAnimationPop;
case facebook::react::RNSScreenReplaceAnimation::Push:
return RNSScreenReplaceAnimationPush;
}
}
+ (RNSScreenSwipeDirection)RNSScreenSwipeDirectionFromCppEquivalent:
(facebook::react::RNSScreenSwipeDirection)swipeDirection
{
switch (swipeDirection) {
case facebook::react::RNSScreenSwipeDirection::Horizontal:
return RNSScreenSwipeDirectionHorizontal;
case facebook::react::RNSScreenSwipeDirection::Vertical:
return RNSScreenSwipeDirectionVertical;
}
}
+ (RNSScreenDetentType)RNSScreenDetentTypeFromAllowedDetents:
(facebook::react::RNSScreenSheetAllowedDetents)allowedDetents
{
switch (allowedDetents) {
case facebook::react::RNSScreenSheetAllowedDetents::All:
return RNSScreenDetentTypeAll;
case facebook::react::RNSScreenSheetAllowedDetents::Large:
return RNSScreenDetentTypeLarge;
case facebook::react::RNSScreenSheetAllowedDetents::Medium:
return RNSScreenDetentTypeMedium;
}
}
+ (RNSScreenDetentType)RNSScreenDetentTypeFromLargestUndimmedDetent:
(facebook::react::RNSScreenSheetLargestUndimmedDetent)detent
{
switch (detent) {
case facebook::react::RNSScreenSheetLargestUndimmedDetent::All:
return RNSScreenDetentTypeAll;
case facebook::react::RNSScreenSheetLargestUndimmedDetent::Large:
return RNSScreenDetentTypeLarge;
case facebook::react::RNSScreenSheetLargestUndimmedDetent::Medium:
return RNSScreenDetentTypeMedium;
}
}
+ (NSDictionary *)gestureResponseDistanceDictFromCppStruct:
(const facebook::react::RNSScreenGestureResponseDistanceStruct &)gestureResponseDistance
{
return @{
@"start" : @(gestureResponseDistance.start),
@"end" : @(gestureResponseDistance.end),
@"top" : @(gestureResponseDistance.top),
@"bottom" : @(gestureResponseDistance.bottom),
};
}
+ (UITextAutocapitalizationType)UITextAutocapitalizationTypeFromCppEquivalent:
(facebook::react::RNSSearchBarAutoCapitalize)autoCapitalize
{
switch (autoCapitalize) {
case facebook::react::RNSSearchBarAutoCapitalize::Words:
return UITextAutocapitalizationTypeWords;
case facebook::react::RNSSearchBarAutoCapitalize::Sentences:
return UITextAutocapitalizationTypeSentences;
case facebook::react::RNSSearchBarAutoCapitalize::Characters:
return UITextAutocapitalizationTypeAllCharacters;
case facebook::react::RNSSearchBarAutoCapitalize::None:
return UITextAutocapitalizationTypeNone;
}
}
@end
#endif // RN_FABRIC_ENABLED