From 23328439f9258dce61c73381472c8259e29f1085 Mon Sep 17 00:00:00 2001 From: Rahul kushwaha <31707153+kushu7@users.noreply.github.com> Date: Wed, 12 Jul 2023 01:28:32 +0000 Subject: [PATCH 1/2] format amount before navigating to next page --- src/pages/iou/steps/MoneyRequestAmountPage.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/pages/iou/steps/MoneyRequestAmountPage.js b/src/pages/iou/steps/MoneyRequestAmountPage.js index a3583a72633c..efc8bd6281b6 100755 --- a/src/pages/iou/steps/MoneyRequestAmountPage.js +++ b/src/pages/iou/steps/MoneyRequestAmountPage.js @@ -369,6 +369,13 @@ 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, + }); + if (isEditing.current) { Navigation.goBack(ROUTES.getMoneyRequestConfirmationRoute(iouType.current, reportID.current)); return; From abb18c3a50cf49d9bc1085b6d2d42545be7202b5 Mon Sep 17 00:00:00 2001 From: Rahul kushwaha <31707153+kushu7@users.noreply.github.com> Date: Thu, 13 Jul 2023 19:35:05 +0000 Subject: [PATCH 2/2] added common function for saving amount --- src/pages/iou/steps/MoneyRequestAmountPage.js | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/src/pages/iou/steps/MoneyRequestAmountPage.js b/src/pages/iou/steps/MoneyRequestAmountPage.js index efc8bd6281b6..e25f7acb0553 100755 --- a/src/pages/iou/steps/MoneyRequestAmountPage.js +++ b/src/pages/iou/steps/MoneyRequestAmountPage.js @@ -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) { @@ -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( @@ -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));