diff --git a/src/components/OptionsSelector/BaseOptionsSelector.js b/src/components/OptionsSelector/BaseOptionsSelector.js
index 78afe0f379b2..f7f94f990e38 100755
--- a/src/components/OptionsSelector/BaseOptionsSelector.js
+++ b/src/components/OptionsSelector/BaseOptionsSelector.js
@@ -271,6 +271,7 @@ class BaseOptionsSelector extends Component {
isDisabled={this.props.isDisabled}
shouldHaveOptionSeparator={this.props.shouldHaveOptionSeparator}
onLayout={this.props.onLayout}
+ contentContainerStyles={shouldShowFooter ? [] : [this.props.safeAreaPaddingBottomStyle]}
/>
) : ;
return (
diff --git a/src/pages/NewChatPage.js b/src/pages/NewChatPage.js
index 1c0294881360..1ede56c65ca7 100755
--- a/src/pages/NewChatPage.js
+++ b/src/pages/NewChatPage.js
@@ -260,6 +260,7 @@ class NewChatPage extends Component {
confirmButtonText={this.props.translate('newChatPage.createGroup')}
onConfirmSelection={this.createGroup}
placeholderText={this.props.translate('optionsSelector.nameEmailOrPhoneNumber')}
+ safeAreaPaddingBottomStyle={safeAreaPaddingBottomStyle}
/>
) : (
diff --git a/src/pages/ReportParticipantsPage.js b/src/pages/ReportParticipantsPage.js
index e91667d4e908..e46e4e025eb3 100755
--- a/src/pages/ReportParticipantsPage.js
+++ b/src/pages/ReportParticipantsPage.js
@@ -72,38 +72,40 @@ const ReportParticipantsPage = (props) => {
const participants = getAllParticipants(props.report, props.personalDetails);
return (
-
-
-
- {Boolean(participants.length)
- && (
- {
- Navigation.navigate(ROUTES.getReportParticipantRoute(
- props.route.params.reportID, option.login,
- ));
- }}
- hideSectionHeaders
- showTitleTooltip
- disableFocusOptions
- boldStyle
- optionHoveredStyle={styles.hoveredComponentBG}
+
+ {({safeAreaPaddingBottomStyle}) => (
+ <>
+
- )}
-
+
+ {Boolean(participants.length) && (
+ {
+ Navigation.navigate(ROUTES.getReportParticipantRoute(
+ props.route.params.reportID, option.login,
+ ));
+ }}
+ hideSectionHeaders
+ showTitleTooltip
+ disableFocusOptions
+ boldStyle
+ optionHoveredStyle={styles.hoveredComponentBG}
+ contentContainerStyles={[safeAreaPaddingBottomStyle]}
+ />
+ )}
+
+ >
+ )}
);
};
diff --git a/src/pages/SearchPage.js b/src/pages/SearchPage.js
index 3cefc6a98c3d..2e29a9395750 100755
--- a/src/pages/SearchPage.js
+++ b/src/pages/SearchPage.js
@@ -170,7 +170,7 @@ class SearchPage extends Component {
);
return (
- {({didScreenTransitionEnd}) => (
+ {({didScreenTransitionEnd, safeAreaPaddingBottomStyle}) => (
<>
>
diff --git a/src/pages/iou/IOUCurrencySelection.js b/src/pages/iou/IOUCurrencySelection.js
index e78cbd48e16f..1d4524be7d66 100644
--- a/src/pages/iou/IOUCurrencySelection.js
+++ b/src/pages/iou/IOUCurrencySelection.js
@@ -113,18 +113,23 @@ class IOUCurrencySelection extends Component {
const headerMessage = this.state.searchValue.trim() && !this.state.currencyData.length ? this.props.translate('common.noResultsFound') : '';
return (
-
-
+ {({safeAreaPaddingBottomStyle}) => (
+ <>
+
+
+ >
+ )}
);
}
diff --git a/src/pages/iou/IOUDetailsModal.js b/src/pages/iou/IOUDetailsModal.js
index 4da6d6792f47..e3380122db7a 100644
--- a/src/pages/iou/IOUDetailsModal.js
+++ b/src/pages/iou/IOUDetailsModal.js
@@ -154,49 +154,52 @@ class IOUDetailsModal extends Component {
const pendingAction = this.findPendingAction();
const iouReportStateNum = lodashGet(this.props.iouReport, 'stateNum');
const hasOutstandingIOU = lodashGet(this.props.iouReport, 'hasOutstandingIOU');
+ const hasFixedFooter = hasOutstandingIOU && this.props.iouReport.managerEmail === sessionEmail;
return (
-
-
-
- {this.props.iou.loading ? : (
-
-
-
-
-
- {(hasOutstandingIOU && this.props.iouReport.managerEmail === sessionEmail && (
-
- this.payMoneyRequest(paymentMethodType)}
- shouldShowPaypal={Boolean(lodashGet(this.props, 'iouReport.submitterPayPalMeAddress'))}
- currency={lodashGet(this.props, 'iouReport.currency')}
- enablePaymentsRoute={ROUTES.IOU_DETAILS_ENABLE_PAYMENTS}
- addBankAccountRoute={ROUTES.IOU_DETAILS_ADD_BANK_ACCOUNT}
- addDebitCardRoute={ROUTES.IOU_DETAILS_ADD_DEBIT_CARD}
+
+ {({safeAreaPaddingBottomStyle}) => (
+
+
+ {this.props.iou.loading ? : (
+
+
+
-
- ))}
-
- )}
-
+
+
+ {(hasOutstandingIOU && this.props.iouReport.managerEmail === sessionEmail && (
+
+ this.payMoneyRequest(paymentMethodType)}
+ shouldShowPaypal={Boolean(lodashGet(this.props, 'iouReport.submitterPayPalMeAddress'))}
+ currency={lodashGet(this.props, 'iouReport.currency')}
+ enablePaymentsRoute={ROUTES.IOU_DETAILS_ENABLE_PAYMENTS}
+ addBankAccountRoute={ROUTES.IOU_DETAILS_ADD_BANK_ACCOUNT}
+ addDebitCardRoute={ROUTES.IOU_DETAILS_ADD_DEBIT_CARD}
+ chatReportID={this.props.route.params.chatReportID}
+ />
+
+ ))}
+
+ )}
+
+ )}
);
}
diff --git a/src/pages/iou/IOUModal.js b/src/pages/iou/IOUModal.js
index c733ce6f8989..6acc2fb35330 100755
--- a/src/pages/iou/IOUModal.js
+++ b/src/pages/iou/IOUModal.js
@@ -453,6 +453,7 @@ class IOUModal extends Component {
hasMultipleParticipants={this.props.hasMultipleParticipants}
onAddParticipants={this.addParticipants}
onStepComplete={this.navigateToNextStep}
+ safeAreaPaddingBottomStyle={safeAreaPaddingBottomStyle}
/>
)}
diff --git a/src/pages/iou/steps/IOUParticipantsPage/IOUParticipantsPage.js b/src/pages/iou/steps/IOUParticipantsPage/IOUParticipantsPage.js
index ac719cda4c31..38d5c7a9d46d 100644
--- a/src/pages/iou/steps/IOUParticipantsPage/IOUParticipantsPage.js
+++ b/src/pages/iou/steps/IOUParticipantsPage/IOUParticipantsPage.js
@@ -41,11 +41,18 @@ const propTypes = {
/** Whether or not the IOU step is loading (retrieving participants) */
loading: PropTypes.bool,
}),
+
+ /** padding bottom style of safe area */
+ safeAreaPaddingBottomStyle: PropTypes.oneOfType([
+ PropTypes.arrayOf(PropTypes.object),
+ PropTypes.object,
+ ]),
};
const defaultProps = {
iou: {},
participants: [],
+ safeAreaPaddingBottomStyle: {},
};
const IOUParticipantsPage = (props) => {
@@ -63,12 +70,14 @@ const IOUParticipantsPage = (props) => {
onStepComplete={props.onStepComplete}
participants={props.participants}
onAddParticipants={props.onAddParticipants}
+ safeAreaPaddingBottomStyle={props.safeAreaPaddingBottomStyle}
/>
)
: (
)
);
diff --git a/src/pages/iou/steps/IOUParticipantsPage/IOUParticipantsRequest.js b/src/pages/iou/steps/IOUParticipantsPage/IOUParticipantsRequest.js
index 0b29c1df14dd..dae9161da5fb 100755
--- a/src/pages/iou/steps/IOUParticipantsPage/IOUParticipantsRequest.js
+++ b/src/pages/iou/steps/IOUParticipantsPage/IOUParticipantsRequest.js
@@ -141,6 +141,7 @@ class IOUParticipantsRequest extends Component {
headerMessage={headerMessage}
placeholderText={this.props.translate('optionsSelector.nameEmailOrPhoneNumber')}
boldStyle
+ safeAreaPaddingBottomStyle={this.props.safeAreaPaddingBottomStyle}
/>
);
}
diff --git a/src/pages/iou/steps/IOUParticipantsPage/IOUParticipantsSplit.js b/src/pages/iou/steps/IOUParticipantsPage/IOUParticipantsSplit.js
index 7da28e971cdc..5e71168fd693 100755
--- a/src/pages/iou/steps/IOUParticipantsPage/IOUParticipantsSplit.js
+++ b/src/pages/iou/steps/IOUParticipantsPage/IOUParticipantsSplit.js
@@ -13,7 +13,6 @@ import compose from '../../../../libs/compose';
import Text from '../../../../components/Text';
import personalDetailsPropType from '../../../personalDetailsPropType';
import reportPropTypes from '../../../reportPropTypes';
-import SafeAreaConsumer from '../../../../components/SafeAreaConsumer';
const propTypes = {
/** Beta features list */
@@ -210,29 +209,26 @@ class IOUParticipantsSplit extends Component {
maxParticipantsReached,
);
return (
-
- {({safeAreaPaddingBottomStyle}) => (
- 0 ? safeAreaPaddingBottomStyle : {})]}>
-
- {this.props.translate('common.to')}
-
-
-
- )}
-
+ 0 ? this.props.safeAreaPaddingBottomStyle : {})]}>
+
+ {this.props.translate('common.to')}
+
+
+
);
}
}
diff --git a/src/pages/settings/AboutPage/AboutPage.js b/src/pages/settings/AboutPage/AboutPage.js
index a9a809c6d0a2..7c7840fdbbdb 100644
--- a/src/pages/settings/AboutPage/AboutPage.js
+++ b/src/pages/settings/AboutPage/AboutPage.js
@@ -62,80 +62,85 @@ const AboutPage = (props) => {
return (
- Navigation.navigate(ROUTES.SETTINGS)}
- onCloseButtonPress={() => Navigation.dismissModal(true)}
- />
-
-
-
-
-
+ {({safeAreaPaddingBottomStyle}) => (
+ <>
+ Navigation.navigate(ROUTES.SETTINGS)}
+ onCloseButtonPress={() => Navigation.dismissModal(true)}
+ />
+
+
+
+
+
+
+ v
+ {pkg.version}
+
+
+ {props.translate('initialSettingsPage.aboutPage.description')}
+
+
+
+ {_.map(menuItems, item => (
+
+
- v
- {pkg.version}
-
-
- {props.translate('initialSettingsPage.aboutPage.description')}
+ {props.translate(
+ 'initialSettingsPage.readTheTermsAndPrivacy.phrase1',
+ )}
+ {' '}
+
+ {props.translate(
+ 'initialSettingsPage.readTheTermsAndPrivacy.phrase2',
+ )}
+
+ {' '}
+ {props.translate(
+ 'initialSettingsPage.readTheTermsAndPrivacy.phrase3',
+ )}
+ {' '}
+
+ {props.translate(
+ 'initialSettingsPage.readTheTermsAndPrivacy.phrase4',
+ )}
+
+ .
-
- {_.map(menuItems, item => (
-
-
-
- {props.translate(
- 'initialSettingsPage.readTheTermsAndPrivacy.phrase1',
- )}
- {' '}
-
- {props.translate(
- 'initialSettingsPage.readTheTermsAndPrivacy.phrase2',
- )}
-
- {' '}
- {props.translate(
- 'initialSettingsPage.readTheTermsAndPrivacy.phrase3',
- )}
- {' '}
-
- {props.translate(
- 'initialSettingsPage.readTheTermsAndPrivacy.phrase4',
- )}
-
- .
-
-
-
+
+ >
+ )}
);
};
diff --git a/src/pages/settings/InitialSettingsPage.js b/src/pages/settings/InitialSettingsPage.js
index 0c55f189bf1a..f10bca4c6037 100755
--- a/src/pages/settings/InitialSettingsPage.js
+++ b/src/pages/settings/InitialSettingsPage.js
@@ -244,57 +244,61 @@ class InitialSettingsPage extends React.Component {
return (
- Navigation.dismissModal(true)}
- />
-
-
-
-
-
-
-
-
-
-
-
-
-
- {this.props.currentUserPersonalDetails.displayName
- ? this.props.currentUserPersonalDetails.displayName
- : Str.removeSMSDomain(this.props.session.email)}
-
-
- {this.props.currentUserPersonalDetails.displayName && (
-
- {Str.removeSMSDomain(this.props.session.email)}
-
- )}
-
- {_.map(this.getDefaultMenuItems(), (item, index) => this.getMenuItem(item, index))}
-
- this.signOut(true)}
- onCancel={() => this.toggleSignoutConfirmModal(false)}
+ {({safeAreaPaddingBottomStyle}) => (
+ <>
+ Navigation.dismissModal(true)}
/>
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {this.props.currentUserPersonalDetails.displayName
+ ? this.props.currentUserPersonalDetails.displayName
+ : Str.removeSMSDomain(this.props.session.email)}
+
+
+ {this.props.currentUserPersonalDetails.displayName && (
+
+ {Str.removeSMSDomain(this.props.session.email)}
+
+ )}
+
+ {_.map(this.getDefaultMenuItems(), (item, index) => this.getMenuItem(item, index))}
+
+ this.signOut(true)}
+ onCancel={() => this.toggleSignoutConfirmModal(false)}
+ />
+
+
+ >
+ )}
);
}
diff --git a/src/pages/settings/Profile/ProfilePage.js b/src/pages/settings/Profile/ProfilePage.js
index 7057bf514190..e321aef312dd 100755
--- a/src/pages/settings/Profile/ProfilePage.js
+++ b/src/pages/settings/Profile/ProfilePage.js
@@ -133,7 +133,7 @@ class ProfilePage extends Component {
},
];
return (
-
+
{
return (
- Navigation.navigate(ROUTES.SETTINGS_PROFILE)}
- onCloseButtonPress={() => Navigation.dismissModal(true)}
- />
-
- {props.translate('pronounsPage.isShownOnProfile')}
-
- updatePronouns(option.value)}
- hideSectionHeaders
- optionHoveredStyle={styles.hoveredComponentBG}
- shouldHaveOptionSeparator
- contentContainerStyles={[styles.ph5]}
- />
+ {({safeAreaPaddingBottomStyle}) => (
+ <>
+ Navigation.navigate(ROUTES.SETTINGS_PROFILE)}
+ onCloseButtonPress={() => Navigation.dismissModal(true)}
+ />
+
+ {props.translate('pronounsPage.isShownOnProfile')}
+
+ updatePronouns(option.value)}
+ hideSectionHeaders
+ optionHoveredStyle={styles.hoveredComponentBG}
+ shouldHaveOptionSeparator
+ contentContainerStyles={[styles.ph5, safeAreaPaddingBottomStyle]}
+ />
+ >
+ )}
);
};
diff --git a/src/pages/settings/Profile/TimezoneSelectPage.js b/src/pages/settings/Profile/TimezoneSelectPage.js
index 7a89ac8ce73d..fd91f9a2e91f 100644
--- a/src/pages/settings/Profile/TimezoneSelectPage.js
+++ b/src/pages/settings/Profile/TimezoneSelectPage.js
@@ -76,21 +76,26 @@ class TimezoneSelectPage extends Component {
render() {
return (
- Navigation.navigate(ROUTES.SETTINGS_TIMEZONE)}
- onCloseButtonPress={() => Navigation.dismissModal(true)}
- />
-
+ {({safeAreaPaddingBottomStyle}) => (
+ <>
+ Navigation.navigate(ROUTES.SETTINGS_TIMEZONE)}
+ onCloseButtonPress={() => Navigation.dismissModal(true)}
+ />
+
+ >
+ )}
);
}
diff --git a/src/pages/workspace/WorkspaceInitialPage.js b/src/pages/workspace/WorkspaceInitialPage.js
index fd57e35f3257..0d25f4bffcb3 100644
--- a/src/pages/workspace/WorkspaceInitialPage.js
+++ b/src/pages/workspace/WorkspaceInitialPage.js
@@ -148,119 +148,122 @@ class WorkspaceInitialPage extends React.Component {
return (
- Navigation.navigate(ROUTES.SETTINGS_WORKSPACES)}
- >
- (
+ Navigation.navigate(ROUTES.SETTINGS_WORKSPACES)}
- onCloseButtonPress={() => Navigation.dismissModal()}
- shouldShowThreeDotsButton
- shouldShowGetAssistanceButton
- guidesCallTaskID={CONST.GUIDES_CALL_TASK_IDS.WORKSPACE_INITIAL}
- threeDotsMenuItems={[
- {
- icon: Expensicons.Trashcan,
- text: this.props.translate('workspace.common.delete'),
- onSelected: () => this.setState({isDeleteModalOpen: true}),
- },
- ]}
- threeDotsAnchorPosition={styles.threeDotsPopoverOffset}
- />
-
- Navigation.navigate(ROUTES.SETTINGS_WORKSPACES)}
+ onCloseButtonPress={() => Navigation.dismissModal()}
+ shouldShowThreeDotsButton
+ shouldShowGetAssistanceButton
+ guidesCallTaskID={CONST.GUIDES_CALL_TASK_IDS.WORKSPACE_INITIAL}
+ threeDotsMenuItems={[
+ {
+ icon: Expensicons.Trashcan,
+ text: this.props.translate('workspace.common.delete'),
+ onSelected: () => this.setState({isDeleteModalOpen: true}),
+ },
+ ]}
+ threeDotsAnchorPosition={styles.threeDotsPopoverOffset}
+ />
+
-
-
-
-
- {this.props.policy.avatar
- ? (
-
- )
- : (
-
- )}
-
- {!_.isEmpty(this.props.policy.name) && (
+
+
+
+
-
-
- {this.props.policy.name}
-
-
+ {this.props.policy.avatar
+ ? (
+
+ )
+ : (
+
+ )}
- )}
+ {!_.isEmpty(this.props.policy.name) && (
+
+
+
+ {this.props.policy.name}
+
+
+
+ )}
+
+ {_.map(menuItems, item => (
+
- {_.map(menuItems, item => (
-
-
-
- this.toggleDeleteModal(false)}
- prompt={this.props.translate('workspace.common.deleteConfirmation')}
- confirmText={this.props.translate('common.delete')}
- cancelText={this.props.translate('common.cancel')}
- danger
- />
-
+
+
+ this.toggleDeleteModal(false)}
+ prompt={this.props.translate('workspace.common.deleteConfirmation')}
+ confirmText={this.props.translate('common.delete')}
+ cancelText={this.props.translate('common.cancel')}
+ danger
+ />
+
+ )}
);
}
diff --git a/src/pages/workspace/WorkspaceMembersPage.js b/src/pages/workspace/WorkspaceMembersPage.js
index 71aaf2aa4195..6b4c50edf7fd 100644
--- a/src/pages/workspace/WorkspaceMembersPage.js
+++ b/src/pages/workspace/WorkspaceMembersPage.js
@@ -307,70 +307,73 @@ class WorkspaceMembersPage extends React.Component {
includeSafeAreaPaddingBottom={false}
style={[styles.defaultModalContainer]}
>
- Navigation.navigate(ROUTES.SETTINGS_WORKSPACES)}
- >
- Navigation.dismissModal()}
- onBackButtonPress={() => Navigation.navigate(ROUTES.getWorkspaceInitialRoute(policyID))}
- shouldShowGetAssistanceButton
- guidesCallTaskID={CONST.GUIDES_CALL_TASK_IDS.WORKSPACE_MEMBERS}
- shouldShowBackButton
- />
- this.removeUsers()}
- onCancel={this.hideConfirmModal}
- prompt={this.props.translate('workspace.people.removeMembersPrompt')}
- confirmText={this.props.translate('common.remove')}
- cancelText={this.props.translate('common.cancel')}
- />
-
-
-
-
-
-
-
-
- _.contains(this.state.selectedEmployees, member))}
- onPress={() => this.toggleAllUsers()}
- />
-
-
-
- {this.props.translate('workspace.people.selectAll')}
-
+ {({safeAreaPaddingBottomStyle}) => (
+ Navigation.navigate(ROUTES.SETTINGS_WORKSPACES)}
+ >
+ Navigation.dismissModal()}
+ onBackButtonPress={() => Navigation.navigate(ROUTES.getWorkspaceInitialRoute(policyID))}
+ shouldShowGetAssistanceButton
+ guidesCallTaskID={CONST.GUIDES_CALL_TASK_IDS.WORKSPACE_MEMBERS}
+ shouldShowBackButton
+ />
+ this.removeUsers()}
+ onCancel={this.hideConfirmModal}
+ prompt={this.props.translate('workspace.people.removeMembersPrompt')}
+ confirmText={this.props.translate('common.remove')}
+ cancelText={this.props.translate('common.cancel')}
+ />
+
+
+
+
+
+
+
+
+ _.contains(this.state.selectedEmployees, member))}
+ onPress={() => this.toggleAllUsers()}
+ />
+
+
+
+ {this.props.translate('workspace.people.selectAll')}
+
+
+ item.login}
+ showsVerticalScrollIndicator
+ style={[styles.ph5, styles.pb5]}
+ contentContainerStyle={safeAreaPaddingBottomStyle}
+ />
- item.login}
- showsVerticalScrollIndicator
- style={[styles.ph5, styles.pb5]}
- />
-
-
+
+ )}
);
}