diff --git a/src/components/OfflineIndicator.js b/src/components/OfflineIndicator.js index f120fe535834e..9cacc3621790e 100644 --- a/src/components/OfflineIndicator.js +++ b/src/components/OfflineIndicator.js @@ -2,6 +2,7 @@ import PropTypes from 'prop-types'; import React from 'react'; import {View} from 'react-native'; import compose from '@libs/compose'; +import stylePropTypes from '@styles/stylePropTypes'; import styles from '@styles/styles'; import * as StyleUtils from '@styles/StyleUtils'; import variables from '@styles/variables'; @@ -21,6 +22,9 @@ const propTypes = { // eslint-disable-next-line react/forbid-prop-types containerStyles: PropTypes.arrayOf(PropTypes.object), + /** Optional styles for the container */ + style: stylePropTypes, + /** Is the window width narrow, like on a mobile device */ isSmallScreenWidth: PropTypes.bool.isRequired, @@ -29,6 +33,7 @@ const propTypes = { const defaultProps = { containerStyles: [], + style: [], }; const setStyles = (containerStyles, isSmallScreenWidth) => { diff --git a/src/components/ScreenWrapper/index.js b/src/components/ScreenWrapper/index.js index 0b6b742b1a676..0ade615423b88 100644 --- a/src/components/ScreenWrapper/index.js +++ b/src/components/ScreenWrapper/index.js @@ -108,7 +108,7 @@ function ScreenWrapper({ } // We always need the safe area padding bottom if we're showing the offline indicator since it is bottom-docked. - if (includeSafeAreaPaddingBottom || isOffline) { + if (includeSafeAreaPaddingBottom || (isOffline && shouldShowOfflineIndicator)) { paddingStyle.paddingBottom = paddingBottom; } diff --git a/src/pages/NewChatPage.js b/src/pages/NewChatPage.js index 25a1bed4f11a2..f8b041951016f 100755 --- a/src/pages/NewChatPage.js +++ b/src/pages/NewChatPage.js @@ -4,12 +4,14 @@ import {View} from 'react-native'; import {withOnyx} from 'react-native-onyx'; import _ from 'underscore'; import KeyboardAvoidingView from '@components/KeyboardAvoidingView'; +import OfflineIndicator from '@components/OfflineIndicator'; import OptionsSelector from '@components/OptionsSelector'; import ScreenWrapper from '@components/ScreenWrapper'; import withLocalize, {withLocalizePropTypes} from '@components/withLocalize'; import withWindowDimensions, {windowDimensionsPropTypes} from '@components/withWindowDimensions'; import useDelayedInputFocus from '@hooks/useDelayedInputFocus'; import useNetwork from '@hooks/useNetwork'; +import useWindowDimensions from '@hooks/useWindowDimensions'; import * as Browser from '@libs/Browser'; import compose from '@libs/compose'; import * as OptionsListUtils from '@libs/OptionsListUtils'; @@ -58,6 +60,7 @@ function NewChatPage({betas, isGroupChat, personalDetails, reports, translate, i const [filteredUserToInvite, setFilteredUserToInvite] = useState(); const [selectedOptions, setSelectedOptions] = useState([]); const {isOffline} = useNetwork(); + const {isSmallScreenWidth} = useWindowDimensions(); const maxParticipantsReached = selectedOptions.length === CONST.REPORT.MAXIMUM_PARTICIPANTS; const headerMessage = OptionsListUtils.getHeaderMessage( @@ -218,7 +221,8 @@ function NewChatPage({betas, isGroupChat, personalDetails, reports, translate, i return ( + {isSmallScreenWidth && } )} diff --git a/src/pages/NewChatSelectorPage.js b/src/pages/NewChatSelectorPage.js index 6e970c80b1cb4..e8d392dcb4779 100755 --- a/src/pages/NewChatSelectorPage.js +++ b/src/pages/NewChatSelectorPage.js @@ -30,6 +30,7 @@ function NewChatSelectorPage(props) { diff --git a/src/pages/workspace/WorkspaceNewRoomPage.js b/src/pages/workspace/WorkspaceNewRoomPage.js index 4ac16188a6523..271dc45026c7d 100644 --- a/src/pages/workspace/WorkspaceNewRoomPage.js +++ b/src/pages/workspace/WorkspaceNewRoomPage.js @@ -6,6 +6,7 @@ import _ from 'underscore'; import FullPageNotFoundView from '@components/BlockingViews/FullPageNotFoundView'; import Form from '@components/Form'; import KeyboardAvoidingView from '@components/KeyboardAvoidingView'; +import OfflineIndicator from '@components/OfflineIndicator'; import RoomNameInput from '@components/RoomNameInput'; import ScreenWrapper from '@components/ScreenWrapper'; import Text from '@components/Text'; @@ -14,6 +15,8 @@ import ValuePicker from '@components/ValuePicker'; import withNavigationFocus from '@components/withNavigationFocus'; import useDelayedInputFocus from '@hooks/useDelayedInputFocus'; import useLocalize from '@hooks/useLocalize'; +import useNetwork from '@hooks/useNetwork'; +import useWindowDimensions from '@hooks/useWindowDimensions'; import compose from '@libs/compose'; import * as ErrorUtils from '@libs/ErrorUtils'; import Permissions from '@libs/Permissions'; @@ -73,6 +76,8 @@ const defaultProps = { function WorkspaceNewRoomPage(props) { const {translate} = useLocalize(); + const {isOffline} = useNetwork(); + const {isSmallScreenWidth} = useWindowDimensions(); const [visibility, setVisibility] = useState(CONST.REPORT.VISIBILITY.RESTRICTED); const [policyID, setPolicyID] = useState(null); const [writeCapability, setWriteCapability] = useState(CONST.REPORT.WRITE_CAPABILITIES.ALL); @@ -170,7 +175,8 @@ function WorkspaceNewRoomPage(props) { > {visibilityDescription} + {isSmallScreenWidth && } )}