Skip to content

Commit

Permalink
Revert "Fix RCTAlertController not showing when using SceneDelegate o…
Browse files Browse the repository at this point in the history
…n iOS 13.0+ (facebook#35716)"

This reverts commit 0c53420.
  • Loading branch information
dnamrata0805 committed Sep 20, 2023
1 parent b9f0bdd commit eff32ce
Showing 1 changed file with 59 additions and 0 deletions.
59 changes: 59 additions & 0 deletions React/CoreModules/RCTAlertController.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

#import <React/RCTUtils.h>

#import <React/RCTAlertController.h>

@interface RCTAlertController ()

@property (nonatomic, strong) UIWindow *alertWindow;

@end

@implementation RCTAlertController

- (UIWindow *)alertWindow
{
if (_alertWindow == nil) {
UIWindow *keyWindow = RCTSharedApplication().keyWindow;
if (keyWindow) {
_alertWindow = [[UIWindow alloc] initWithFrame:keyWindow.bounds];
_alertWindow.rootViewController = [UIViewController new];
_alertWindow.windowLevel = UIWindowLevelAlert + 1;
} else {
// keyWindow is nil, so we cannot create and initialize _alertWindow
NSLog(@"Unable to create alert window: keyWindow is nil");
}
}

return _alertWindow;
}

- (void)show:(BOOL)animated completion:(void (^)(void))completion
{
if (@available(iOS 13.0, *)) {
UIUserInterfaceStyle style =
RCTSharedApplication().delegate.window.overrideUserInterfaceStyle ?: UIUserInterfaceStyleUnspecified;
self.overrideUserInterfaceStyle = style;
}
[self.alertWindow makeKeyAndVisible];
[self.alertWindow.rootViewController presentViewController:self animated:animated completion:completion];
}

- (void)hide
{
[_alertWindow setHidden:YES];

if (@available(iOS 13, *)) {
_alertWindow.windowScene = nil;
}

_alertWindow = nil;
}

@end

0 comments on commit eff32ce

Please sign in to comment.