mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
feat: RCTConvert to support UIModalPresentationStyle (#43297)
Summary: Currently, the ability to convert JS values to `UIModalPresentationStyle` is not present directly on `RCTConvert`. In the RN code base itself, there's not a lot of need to do this type of conversion, but in community modules, presenting ViewControllers can be a fairly common scenario and it'd be nice to be able to use this conversion directly from `RCTConvert`, rather than from `RCTModalHostViewManager`, as it'd improve its "discoverability" and consistency. If someone relied on this, then it's technically speaking a breaking change but I'd say it's for the better, and searching `#import <React/RCTModalHostViewManager.h>` on github doesn't reveal a lot of results. ## Changelog: [IOS] [ADDED] - RCTConvert to support UIModalPresentationStyle For more details, see: https://reactnative.dev/contributing/changelogs-in-pull-requests Pull Request resolved: https://github.com/facebook/react-native/pull/43297 Test Plan: Tested using RN Tester https://github.com/facebook/react-native/assets/1566403/6e62df86-dde3-47b0-b2e9-bb6b483cadf6 Reviewed By: fkgozali Differential Revision: D54635896 Pulled By: dmytrorykun fbshipit-source-id: c6747857830762cd0333c31c287954f3f10d4954
This commit is contained in:
committed by
Facebook GitHub Bot
parent
9b1c486e40
commit
2d547a3252
@@ -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;
|
||||
|
||||
@@ -510,6 +510,17 @@ RCT_ENUM_CONVERTER(
|
||||
NSNotFound,
|
||||
unsignedIntegerValue)
|
||||
|
||||
RCT_ENUM_CONVERTER(
|
||||
UIModalPresentationStyle,
|
||||
(@{
|
||||
@"fullScreen" : @(UIModalPresentationFullScreen),
|
||||
@"pageSheet" : @(UIModalPresentationPageSheet),
|
||||
@"formSheet" : @(UIModalPresentationFormSheet),
|
||||
@"overFullScreen" : @(UIModalPresentationOverFullScreen),
|
||||
}),
|
||||
UIModalPresentationFullScreen,
|
||||
integerValue)
|
||||
|
||||
RCT_ENUM_CONVERTER(
|
||||
UIViewContentMode,
|
||||
(@{
|
||||
|
||||
@@ -9,12 +9,6 @@
|
||||
#import <React/RCTInvalidating.h>
|
||||
#import <React/RCTViewManager.h>
|
||||
|
||||
@interface RCTConvert (RCTModalHostView)
|
||||
|
||||
+ (UIModalPresentationStyle)UIModalPresentationStyle:(id)json;
|
||||
|
||||
@end
|
||||
|
||||
typedef void (^RCTModalViewInteractionBlock)(
|
||||
UIViewController *reactViewController,
|
||||
UIViewController *viewController,
|
||||
|
||||
@@ -14,21 +14,6 @@
|
||||
#import "RCTShadowView.h"
|
||||
#import "RCTUtils.h"
|
||||
|
||||
@implementation RCTConvert (RCTModalHostView)
|
||||
|
||||
RCT_ENUM_CONVERTER(
|
||||
UIModalPresentationStyle,
|
||||
(@{
|
||||
@"fullScreen" : @(UIModalPresentationFullScreen),
|
||||
@"pageSheet" : @(UIModalPresentationPageSheet),
|
||||
@"formSheet" : @(UIModalPresentationFormSheet),
|
||||
@"overFullScreen" : @(UIModalPresentationOverFullScreen),
|
||||
}),
|
||||
UIModalPresentationFullScreen,
|
||||
integerValue)
|
||||
|
||||
@end
|
||||
|
||||
@interface RCTModalHostShadowView : RCTShadowView
|
||||
|
||||
@end
|
||||
|
||||
Reference in New Issue
Block a user