diff --git a/src/components/CardOverlay.js b/src/components/CardOverlay.js
new file mode 100644
index 000000000000..2b41472a05dc
--- /dev/null
+++ b/src/components/CardOverlay.js
@@ -0,0 +1,7 @@
+import React from 'react';
+import {View} from 'react-native';
+import styles from '../styles/styles';
+
+const CardOverlay = () => ;
+
+export default CardOverlay;
diff --git a/src/libs/Navigation/AppNavigator/AuthScreens.js b/src/libs/Navigation/AppNavigator/AuthScreens.js
index f4f1379628d3..45f6077b922d 100644
--- a/src/libs/Navigation/AppNavigator/AuthScreens.js
+++ b/src/libs/Navigation/AppNavigator/AuthScreens.js
@@ -65,6 +65,8 @@ import Timers from '../../Timers';
import ValidateLoginNewWorkspacePage from '../../../pages/ValidateLoginNewWorkspacePage';
import ValidateLogin2FANewWorkspacePage from '../../../pages/ValidateLogin2FANewWorkspacePage';
import WorkspaceSettingsDrawerNavigator from './WorkspaceSettingsDrawerNavigator';
+import spacing from '../../../styles/utilities/spacing';
+import CardOverlay from '../../../components/CardOverlay';
import defaultScreenOptions from './defaultScreenOptions';
Onyx.connect({
@@ -253,10 +255,14 @@ class AuthScreens extends React.Component {
};
const fullscreenModalScreenOptions = {
...commonModalScreenOptions,
- cardStyle: {...styles.fullscreenCard},
+ cardStyle: {
+ ...styles.fullscreenCard,
+ padding: this.props.isSmallScreenWidth ? spacing.p0.padding : spacing.p5.padding,
+ },
cardStyleInterpolator: props => modalCardStyleInterpolator(this.props.isSmallScreenWidth, true, props),
- cardOverlayEnabled: false,
+ cardOverlayEnabled: !this.props.isSmallScreenWidth,
isFullScreenModal: true,
+ cardOverlay: CardOverlay,
};
return (
@@ -279,6 +285,7 @@ class AuthScreens extends React.Component {
// prevent unnecessary scrolling
cardStyle: {
overflow: 'hidden',
+ height: '100%',
},
}}
component={MainDrawerNavigator}
diff --git a/src/libs/Navigation/AppNavigator/BaseDrawerNavigator.js b/src/libs/Navigation/AppNavigator/BaseDrawerNavigator.js
index e794db66960e..5a6d277b1953 100644
--- a/src/libs/Navigation/AppNavigator/BaseDrawerNavigator.js
+++ b/src/libs/Navigation/AppNavigator/BaseDrawerNavigator.js
@@ -2,6 +2,7 @@ import React from 'react';
import _ from 'underscore';
import PropTypes from 'prop-types';
import {createDrawerNavigator} from '@react-navigation/drawer';
+import {View} from 'react-native';
import styles, {getNavigationDrawerStyle, getNavigationDrawerType} from '../../../styles/styles';
import withWindowDimensions, {windowDimensionsPropTypes} from '../../../components/withWindowDimensions';
@@ -22,38 +23,51 @@ const propTypes = {
/** Drawer content Component */
drawerContent: PropTypes.elementType.isRequired,
+ /** If it's the main screen, don't wrap the content even if it's a full screen modal. */
+ isMainScreen: PropTypes.bool,
+
/** Window Dimensions props */
...windowDimensionsPropTypes,
};
const Drawer = createDrawerNavigator();
-const BaseDrawerNavigator = props => (
-
- {_.map(props.screens, screen => (
-
- ))}
-
-);
+const BaseDrawerNavigator = (props) => {
+ const content = (
+
+ {_.map(props.screens, screen => (
+
+ ))}
+
+ );
+
+ if (!props.isMainScreen && !props.isSmallScreenWidth) {
+ return (
+
+ {content}
+
+ );
+ }
+
+ return content;
+};
BaseDrawerNavigator.propTypes = propTypes;
BaseDrawerNavigator.displayName = 'BaseDrawerNavigator';
diff --git a/src/libs/Navigation/AppNavigator/MainDrawerNavigator.js b/src/libs/Navigation/AppNavigator/MainDrawerNavigator.js
index de10b3fc9364..382aad6fef84 100644
--- a/src/libs/Navigation/AppNavigator/MainDrawerNavigator.js
+++ b/src/libs/Navigation/AppNavigator/MainDrawerNavigator.js
@@ -54,6 +54,7 @@ const MainDrawerNavigator = (props) => {
initialParams,
},
]}
+ isMainScreen
/>
);
};
diff --git a/src/styles/styles.js b/src/styles/styles.js
index 31d8103e433f..9c50974a4107 100644
--- a/src/styles/styles.js
+++ b/src/styles/styles.js
@@ -1551,6 +1551,12 @@ const styles = {
height: '100%',
},
+ navigationSceneFullScreenWrapper: {
+ borderRadius: variables.componentBorderRadiusCard,
+ overflow: 'hidden',
+ height: '100%',
+ },
+
invisible: {
position: 'absolute',
opacity: 0,
@@ -1855,6 +1861,22 @@ const styles = {
...whiteSpace.noWrap,
},
+ cardOverlay: {
+ backgroundColor: themeColors.modalBackdrop,
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ width: '100%',
+ height: '100%',
+ opacity: 0.5,
+ },
+
+ communicationsLinkIcon: {
+ right: -36,
+ top: 0,
+ bottom: 0,
+ },
+
shortTermsRow: {
flexDirection: 'row',
padding: 12,
@@ -1999,20 +2021,18 @@ function getSafeAreaMargins(insets) {
/**
* Return navigation menu styles.
*
- * @param {Number} windowWidth
- * @param {Number} windowHeight
* @param {Boolean} isSmallScreenWidth
* @returns {Object}
*/
-function getNavigationDrawerStyle(windowWidth, windowHeight, isSmallScreenWidth) {
+function getNavigationDrawerStyle(isSmallScreenWidth) {
return isSmallScreenWidth
? {
- width: windowWidth,
- height: windowHeight,
+ width: '100%',
+ height: '100%',
borderColor: themeColors.border,
}
: {
- height: windowHeight,
+ height: '100%',
width: variables.sideBarWidth,
borderRightColor: themeColors.border,
};