diff --git a/packages/react-native/React/CoreModules/RCTAlertController.mm b/packages/react-native/React/CoreModules/RCTAlertController.mm index b275ebc5c67e..e8b13f071798 100644 --- a/packages/react-native/React/CoreModules/RCTAlertController.mm +++ b/packages/react-native/React/CoreModules/RCTAlertController.mm @@ -23,6 +23,7 @@ - (UIWindow *)alertWindow UIWindowScene *scene = RCTKeyWindow().windowScene; if (scene != nil) { _alertWindow = [[UIWindow alloc] initWithWindowScene:scene]; + _alertWindow.frame = scene.coordinateSpace.bounds; } else { _alertWindow = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds]; } diff --git a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewUtils.mm b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewUtils.mm index 84be3c36c3d9..ef7e3a2b1894 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewUtils.mm +++ b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewUtils.mm @@ -13,8 +13,16 @@ Size ModalHostViewScreenSize(void) { - CGSize screenSize = RCTScreenSize(); - return {.width = screenSize.width, .height = screenSize.height}; + __block CGSize viewportSize; + + RCTUnsafeExecuteOnMainQueueSync(^{ + viewportSize = RCTViewportSize(); + }); + + return { + .width = viewportSize.width, + .height = viewportSize.height, + }; } } // namespace facebook::react