From e99196e8faeade991590dc828e03fee7f12f6d8b Mon Sep 17 00:00:00 2001 From: Vojtech Novak Date: Sat, 2 Mar 2024 12:07:03 +0100 Subject: [PATCH 1/2] feat: RCTConvert to support UIModalPresentationStyle --- packages/react-native/React/Base/RCTConvert.h | 1 + packages/react-native/React/Base/RCTConvert.mm | 11 +++++++++++ .../React/Views/RCTModalHostViewManager.h | 7 ------- .../React/Views/RCTModalHostViewManager.m | 16 +--------------- 4 files changed, 13 insertions(+), 22 deletions(-) diff --git a/packages/react-native/React/Base/RCTConvert.h b/packages/react-native/React/Base/RCTConvert.h index 8b819fda89e6..8e8a847f6fc4 100644 --- a/packages/react-native/React/Base/RCTConvert.h +++ b/packages/react-native/React/Base/RCTConvert.h @@ -80,6 +80,7 @@ typedef NSURL RCTFileURL; + (UIReturnKeyType)UIReturnKeyType:(id)json; + (UIUserInterfaceStyle)UIUserInterfaceStyle:(id)json API_AVAILABLE(ios(12)); + (UIInterfaceOrientationMask)UIInterfaceOrientationMask:(NSString *)orientation; ++ (UIModalPresentationStyle)UIModalPresentationStyle:(id)json; #if !TARGET_OS_TV + (UIDataDetectorTypes)UIDataDetectorTypes:(id)json; diff --git a/packages/react-native/React/Base/RCTConvert.mm b/packages/react-native/React/Base/RCTConvert.mm index fb5e43c6d2ed..c4b15a1df20b 100644 --- a/packages/react-native/React/Base/RCTConvert.mm +++ b/packages/react-native/React/Base/RCTConvert.mm @@ -510,6 +510,17 @@ + (UIKeyboardType)UIKeyboardType:(id)json RCT_DYNAMIC NSNotFound, unsignedIntegerValue) +RCT_ENUM_CONVERTER( + UIModalPresentationStyle, + (@{ + @"fullScreen" : @(UIModalPresentationFullScreen), + @"pageSheet" : @(UIModalPresentationPageSheet), + @"formSheet" : @(UIModalPresentationFormSheet), + @"overFullScreen" : @(UIModalPresentationOverFullScreen), + }), + UIModalPresentationFullScreen, + integerValue) + RCT_ENUM_CONVERTER( UIViewContentMode, (@{ diff --git a/packages/react-native/React/Views/RCTModalHostViewManager.h b/packages/react-native/React/Views/RCTModalHostViewManager.h index 11b52984b308..8fe4ccb8ba3d 100644 --- a/packages/react-native/React/Views/RCTModalHostViewManager.h +++ b/packages/react-native/React/Views/RCTModalHostViewManager.h @@ -5,16 +5,9 @@ * LICENSE file in the root directory of this source tree. */ -#import #import #import -@interface RCTConvert (RCTModalHostView) - -+ (UIModalPresentationStyle)UIModalPresentationStyle:(id)json; - -@end - typedef void (^RCTModalViewInteractionBlock)( UIViewController *reactViewController, UIViewController *viewController, diff --git a/packages/react-native/React/Views/RCTModalHostViewManager.m b/packages/react-native/React/Views/RCTModalHostViewManager.m index b0295e05ae4d..adb0f27d2943 100644 --- a/packages/react-native/React/Views/RCTModalHostViewManager.m +++ b/packages/react-native/React/Views/RCTModalHostViewManager.m @@ -13,21 +13,7 @@ #import "RCTModalManager.h" #import "RCTShadowView.h" #import "RCTUtils.h" - -@implementation RCTConvert (RCTModalHostView) - -RCT_ENUM_CONVERTER( - UIModalPresentationStyle, - (@{ - @"fullScreen" : @(UIModalPresentationFullScreen), - @"pageSheet" : @(UIModalPresentationPageSheet), - @"formSheet" : @(UIModalPresentationFormSheet), - @"overFullScreen" : @(UIModalPresentationOverFullScreen), - }), - UIModalPresentationFullScreen, - integerValue) - -@end +#import @interface RCTModalHostShadowView : RCTShadowView From c0a1bd49a5891f24e02542d81046260e074915ff Mon Sep 17 00:00:00 2001 From: Vojtech Novak Date: Tue, 5 Mar 2024 22:49:00 +0100 Subject: [PATCH 2/2] fix: move RCTConvert.h for better compatibility --- packages/react-native/React/Views/RCTModalHostViewManager.h | 1 + packages/react-native/React/Views/RCTModalHostViewManager.m | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-native/React/Views/RCTModalHostViewManager.h b/packages/react-native/React/Views/RCTModalHostViewManager.h index 8fe4ccb8ba3d..d2694ea26fd1 100644 --- a/packages/react-native/React/Views/RCTModalHostViewManager.h +++ b/packages/react-native/React/Views/RCTModalHostViewManager.h @@ -5,6 +5,7 @@ * LICENSE file in the root directory of this source tree. */ +#import #import #import diff --git a/packages/react-native/React/Views/RCTModalHostViewManager.m b/packages/react-native/React/Views/RCTModalHostViewManager.m index adb0f27d2943..eccf05f9cb67 100644 --- a/packages/react-native/React/Views/RCTModalHostViewManager.m +++ b/packages/react-native/React/Views/RCTModalHostViewManager.m @@ -13,7 +13,6 @@ #import "RCTModalManager.h" #import "RCTShadowView.h" #import "RCTUtils.h" -#import @interface RCTModalHostShadowView : RCTShadowView