diff --git a/Libraries/Modal/Modal.js b/Libraries/Modal/Modal.js index 1623db0f0b3..d6b2fc2beb0 100644 --- a/Libraries/Modal/Modal.js +++ b/Libraries/Modal/Modal.js @@ -11,14 +11,14 @@ */ 'use strict'; -var Platform = require('Platform'); -var PropTypes = require('ReactPropTypes'); -var React = require('React'); -var StyleSheet = require('StyleSheet'); -var View = require('View'); +const Platform = require('Platform'); +const PropTypes = require('ReactPropTypes'); +const React = require('React'); +const StyleSheet = require('StyleSheet'); +const View = require('View'); -var requireNativeComponent = require('requireNativeComponent'); -var RCTModalHostView = requireNativeComponent('RCTModalHostView', null); +const requireNativeComponent = require('requireNativeComponent'); +const RCTModalHostView = requireNativeComponent('RCTModalHostView', null); /** * A Modal component covers the native view (e.g. UIViewController, Activity) @@ -39,9 +39,9 @@ class Modal extends React.Component { return null; } - if (this.props.transparent) { - var containerBackgroundColor = {backgroundColor: 'transparent'}; - } + const containerBackgroundColor = { + backgroundColor: this.props.transparent ? 'transparent' : 'white', + }; return ( )subview atIndex:(NSInteger)atIndex +{ + [super insertReactSubview:subview atIndex:atIndex]; + if ([subview isKindOfClass:[RCTShadowView class]]) { + CGRect frame = {.origin = CGPointZero, .size = RCTScreenSize()}; + [(RCTShadowView *)subview setFrame:frame]; + } +} + +@end @implementation RCTModalHostViewManager { @@ -30,6 +49,11 @@ RCT_EXPORT_MODULE() return view; } +- (RCTShadowView *)shadowView +{ + return [RCTModalHostShadowView new]; +} + - (void)invalidate { for (RCTModalHostView *hostView in _hostViews) {