Skip to content

Commit

Permalink
added common function for saving amount
Browse files Browse the repository at this point in the history
  • Loading branch information
kushu7 authored Jul 13, 2023
1 parent 2332843 commit abb18c3
Showing 1 changed file with 20 additions and 12 deletions.
32 changes: 20 additions & 12 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,12 +382,7 @@ function MoneyRequestAmountPage(props) {
IOU.setMoneyRequestAmount(amountInSmallestCurrencyUnits);
IOU.setMoneyRequestCurrency(selectedCurrencyCode);

const amountAsStringForState = CurrencyUtils.convertToWholeUnit(selectedCurrencyCode, amountInSmallestCurrencyUnits).toString();
setAmount(amountAsStringForState);
setSelection({
start: amountAsStringForState.length,
end: amountAsStringForState.length,
});
saveAmountToState(selectedCurrencyCode, amountInSmallestCurrencyUnits);

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

0 comments on commit abb18c3

Please sign in to comment.