diff --git a/src/components/ReportActionItem/IOUPreview.js b/src/components/ReportActionItem/IOUPreview.js index f3878c2f2acb..2f584eff2f7b 100644 --- a/src/components/ReportActionItem/IOUPreview.js +++ b/src/components/ReportActionItem/IOUPreview.js @@ -189,7 +189,7 @@ function IOUPreview(props) { - {getPreviewHeaderText()} + {getPreviewHeaderText()} {Boolean(getSettledMessage()) && ( <> {!isCurrentUserManager && props.shouldShowPendingConversionMessage && ( - {props.translate('iou.pendingConversionMessage')} + {props.translate('iou.pendingConversionMessage')} )} - {!_.isEmpty(requestComment) && {requestComment}} + {!_.isEmpty(requestComment) && {requestComment}} {props.isBillSplit && !_.isEmpty(participantAccountIDs) && ( diff --git a/src/components/ReportActionItem/ReportPreview.js b/src/components/ReportActionItem/ReportPreview.js index 93f4a10aba44..087f8494d392 100644 --- a/src/components/ReportActionItem/ReportPreview.js +++ b/src/components/ReportActionItem/ReportPreview.js @@ -14,16 +14,15 @@ import ONYXKEYS from '../../ONYXKEYS'; import ControlSelection from '../../libs/ControlSelection'; import * as DeviceCapabilities from '../../libs/DeviceCapabilities'; import {showContextMenuForReport} from '../ShowContextMenuContext'; -import * as StyleUtils from '../../styles/StyleUtils'; +import * as CurrencyUtils from '../../libs/CurrencyUtils'; import * as ReportUtils from '../../libs/ReportUtils'; import Navigation from '../../libs/Navigation/Navigation'; import ROUTES from '../../ROUTES'; import SettlementButton from '../SettlementButton'; -import getButtonState from '../../libs/getButtonState'; import * as IOU from '../../libs/actions/IOU'; import refPropTypes from '../refPropTypes'; import PressableWithoutFeedback from '../Pressable/PressableWithoutFeedback'; -import CONST from '../../CONST'; +import themeColors from '../../styles/themes/default'; const propTypes = { /** All the data of the action */ @@ -76,15 +75,11 @@ const propTypes = { /** Callback for updating context menu active state, used for showing context menu */ checkIfContextMenuActive: PropTypes.func, - /** Whether the IOU is hovered so we can modify its style */ - isHovered: PropTypes.bool, - ...withLocalizePropTypes, }; const defaultProps = { contextMenuAnchor: null, - isHovered: false, chatReport: {}, iouReport: {}, checkIfContextMenuActive: () => {}, @@ -94,12 +89,15 @@ const defaultProps = { }; function ReportPreview(props) { + const reportAmount = CurrencyUtils.convertToDisplayString(ReportUtils.getMoneyRequestTotal(props.iouReport), props.iouReport.currency); const managerEmail = props.iouReport.managerEmail || ''; + const managerAccountID = props.iouReport.managerID || 0; + const managerName = + (ReportUtils.isPolicyExpenseChat(props.chatReport) ? ReportUtils.getPolicyName(props.chatReport) : ReportUtils.getDisplayNameForParticipant(managerAccountID, true)) || managerEmail; const isCurrentUserManager = managerEmail === lodashGet(props.session, 'email', null); const bankAccountRoute = ReportUtils.getBankAccountRoute(props.chatReport); - const displayingMessage = ReportUtils.getReportPreviewMessage(props.iouReport, props.action); return ( - + { Navigation.navigate(ROUTES.getReportRoute(props.iouReportID)); @@ -108,29 +106,44 @@ function ReportPreview(props) { onPressOut={() => ControlSelection.unblock()} onLongPress={(event) => showContextMenuForReport(event, props.contextMenuAnchor, props.chatReportID, props.action, props.checkIfContextMenuActive)} style={[styles.flexRow, styles.justifyContentBetween]} - accessibilityRole={CONST.ACCESSIBILITY_ROLE.BUTTON} + accessibilityRole="button" accessibilityLabel={props.translate('iou.viewDetails')} > - - {displayingMessage} + + + + + {props.translate(ReportUtils.isSettled(props.iouReportID) ? 'iou.payerPaid' : 'iou.payerOwes', {payer: managerName})} + + + + + + {reportAmount} + {ReportUtils.isSettled(props.iouReportID) && ( + + + + )} + + + {isCurrentUserManager && !ReportUtils.isSettled(props.iouReport.reportID) && ( + IOU.payMoneyRequest(paymentType, props.chatReport, props.iouReport)} + enablePaymentsRoute={ROUTES.BANK_ACCOUNT_NEW} + addBankAccountRoute={bankAccountRoute} + style={[styles.requestPreviewBox]} + /> + )} - - {isCurrentUserManager && !ReportUtils.isSettled(props.iouReport.reportID) && ( - IOU.payMoneyRequest(paymentType, props.chatReport, props.iouReport)} - enablePaymentsRoute={ROUTES.BANK_ACCOUNT_NEW} - addBankAccountRoute={bankAccountRoute} - style={[styles.requestPreviewBox]} - /> - )} ); } diff --git a/src/languages/en.js b/src/languages/en.js index 8e4ebc98ab87..61451c1b78dc 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -360,7 +360,10 @@ export default { splitAmount: ({amount}) => `split ${amount}`, amountEach: ({amount}) => `${amount} each`, payerOwesAmount: ({payer, amount}) => `${payer} owes ${amount}`, + payerOwes: ({payer}) => `${payer} owes: `, payerPaidAmount: ({payer, amount}) => `${payer} paid ${amount}`, + payerPaid: ({payer}) => `${payer} paid: `, + payerSettled: ({amount}) => `paid ${amount}`, settledElsewhereWithAmount: ({amount}) => `paid ${amount} elsewhere`, settledPaypalMeWithAmount: ({amount}) => `paid ${amount} using Paypal.me`, noReimbursableExpenses: 'This report has an invalid amount', diff --git a/src/languages/es.js b/src/languages/es.js index 295b63d7a773..83fec747eac8 100644 --- a/src/languages/es.js +++ b/src/languages/es.js @@ -359,7 +359,10 @@ export default { splitAmount: ({amount}) => `dividir ${amount}`, amountEach: ({amount}) => `${amount} cada uno`, payerOwesAmount: ({payer, amount}) => `${payer} debe ${amount}`, + payerOwes: ({payer}) => `${payer} debe: `, payerPaidAmount: ({payer, amount}) => `${payer} pagó ${amount}`, + payerPaid: ({payer}) => `${payer} pagó: `, + payerSettled: ({amount}) => `pagó ${amount}`, settledElsewhereWithAmount: ({amount}) => `pagó ${amount} de otra forma`, settledPaypalMeWithAmount: ({amount}) => `pagó ${amount} con PayPal.me`, noReimbursableExpenses: 'El monto de este informe es inválido', diff --git a/src/styles/styles.js b/src/styles/styles.js index fc226669696e..dbea05a367c0 100644 --- a/src/styles/styles.js +++ b/src/styles/styles.js @@ -2550,14 +2550,14 @@ const styles = { }, requestPreviewBox: { - marginTop: 8, + marginTop: 12, maxWidth: variables.sideBarWidth, }, iouPreviewBox: { backgroundColor: themeColors.cardBG, - borderRadius: variables.componentBorderRadiusCard, - padding: 20, + borderRadius: variables.componentBorderRadiusLarge, + padding: 16, maxWidth: variables.sideBarWidth, width: '100%', },