Skip to content

Commit

Permalink
Merge pull request #22728 from kushu7/fix-22316-amount-formatting
Browse files Browse the repository at this point in the history
fix: format amount before navigating to next page
  • Loading branch information
puneetlath authored Jul 21, 2023
2 parents 8dcad16 + abb18c3 commit 011a398
Showing 1 changed file with 21 additions and 6 deletions.
27 changes: 21 additions & 6 deletions src/pages/iou/steps/MoneyRequestAmountPage.js
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,24 @@ function MoneyRequestAmountPage(props) {
});
};

/**
* Convert amount to whole unit and update selection
*
* @param {String} currencyCode
* @param {Number} amountInCurrencyUnits
*/
const saveAmountToState = (currencyCode, amountInCurrencyUnits) => {
if (!currencyCode || !amountInCurrencyUnits) {
return;
}
const amountAsStringForState = CurrencyUtils.convertToWholeUnit(currencyCode, amountInCurrencyUnits).toString();
setAmount(amountAsStringForState);
setSelection({
start: amountAsStringForState.length,
end: amountAsStringForState.length,
});
};

useEffect(() => {
if (isEditing.current) {
if (prevMoneyRequestID.current !== props.iou.id) {
Expand Down Expand Up @@ -270,12 +288,7 @@ function MoneyRequestAmountPage(props) {
}, [props.iou.currency]);

useEffect(() => {
const selectedAmountAsStringForState = props.iou.amount ? CurrencyUtils.convertToWholeUnit(props.iou.currency, props.iou.amount).toString() : '';
setAmount(selectedAmountAsStringForState);
setSelection({
start: selectedAmountAsStringForState.length,
end: selectedAmountAsStringForState.length,
});
saveAmountToState(props.iou.currency, props.iou.amount);
}, [props.iou.amount, props.iou.currency]);

useFocusEffect(
Expand Down Expand Up @@ -369,6 +382,8 @@ function MoneyRequestAmountPage(props) {
IOU.setMoneyRequestAmount(amountInSmallestCurrencyUnits);
IOU.setMoneyRequestCurrency(selectedCurrencyCode);

saveAmountToState(selectedCurrencyCode, amountInSmallestCurrencyUnits);

if (isEditing.current) {
Navigation.goBack(ROUTES.getMoneyRequestConfirmationRoute(iouType.current, reportID.current));
return;
Expand Down

0 comments on commit 011a398

Please sign in to comment.