mirror of
https://github.com/status-im/react-native.git
synced 2025-01-28 10:14:49 +00:00
0d3039f1a0
Summary: **Motivation** On Apple TV, pressing the menu button destroys the native view that backs the `Modal` component, causing an app using this component to get into a broken state. This fix implements `onRequestClose` for tvOS to have the same behavior as it does for the Android back button. **Test plan** Manually tested this with the `ModalExample` in the `RNTester` app. See also the test code in issue #15313. Closes https://github.com/facebook/react-native/pull/15341 Differential Revision: D5651035 Pulled By: shergin fbshipit-source-id: 54bf66887bbe85940567e63e90b437ac4a8daf9a
48 lines
1.5 KiB
Objective-C
48 lines
1.5 KiB
Objective-C
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
|
|
#import <UIKit/UIKit.h>
|
|
|
|
#import <React/RCTInvalidating.h>
|
|
#import <React/RCTModalHostViewManager.h>
|
|
#import <React/RCTView.h>
|
|
|
|
@class RCTBridge;
|
|
@class RCTModalHostViewController;
|
|
|
|
@protocol RCTModalHostViewInteractor;
|
|
|
|
@interface RCTModalHostView : UIView <RCTInvalidating>
|
|
|
|
@property (nonatomic, copy) NSString *animationType;
|
|
@property (nonatomic, assign) UIModalPresentationStyle presentationStyle;
|
|
@property (nonatomic, assign, getter=isTransparent) BOOL transparent;
|
|
|
|
@property (nonatomic, copy) RCTDirectEventBlock onShow;
|
|
|
|
@property (nonatomic, weak) id<RCTModalHostViewInteractor> delegate;
|
|
|
|
@property (nonatomic, copy) NSArray<NSString *> *supportedOrientations;
|
|
@property (nonatomic, copy) RCTDirectEventBlock onOrientationChange;
|
|
|
|
#if TARGET_OS_TV
|
|
@property (nonatomic, copy) RCTDirectEventBlock onRequestClose;
|
|
#endif
|
|
|
|
- (instancetype)initWithBridge:(RCTBridge *)bridge NS_DESIGNATED_INITIALIZER;
|
|
|
|
@end
|
|
|
|
@protocol RCTModalHostViewInteractor <NSObject>
|
|
|
|
- (void)presentModalHostView:(RCTModalHostView *)modalHostView withViewController:(RCTModalHostViewController *)viewController animated:(BOOL)animated;
|
|
- (void)dismissModalHostView:(RCTModalHostView *)modalHostView withViewController:(RCTModalHostViewController *)viewController animated:(BOOL)animated;
|
|
|
|
@end
|