From ad89755432bf342dda66a139193f3b4076ab767b Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Mon, 18 Dec 2023 20:21:05 +0400 Subject: [PATCH 1/3] use udpateMoneyRequestBillable --- .../ReportActionItem/MoneyRequestView.js | 17 +++++++++++++++-- src/libs/actions/IOU.js | 16 ++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/components/ReportActionItem/MoneyRequestView.js b/src/components/ReportActionItem/MoneyRequestView.js index 817c88d456db..6ee5524b2868 100644 --- a/src/components/ReportActionItem/MoneyRequestView.js +++ b/src/components/ReportActionItem/MoneyRequestView.js @@ -1,7 +1,7 @@ import lodashGet from 'lodash/get'; import lodashValues from 'lodash/values'; import PropTypes from 'prop-types'; -import React, {useMemo} from 'react'; +import React, {useMemo, useCallback} from 'react'; import {View} from 'react-native'; import {withOnyx} from 'react-native-onyx'; import categoryPropTypes from '@components/categoryPropTypes'; @@ -133,6 +133,19 @@ function MoneyRequestView({report, parentReport, parentReportActions, policyCate let amountDescription = `${translate('iou.amount')}`; + const saveBillable = useCallback( + ({billable: newBillable}) => { + // If the value hasn't changed, don't request to save changes on the server and just close the modal + if (newBillable === TransactionUtils.getBillable(transaction)) { + Navigation.dismissModal(); + return; + } + IOU.updateMoneyRequestBillable(transaction.transactionID, report.reportID, newBillable); + Navigation.dismissModal(); + }, + [transaction, report], + ); + if (isCardTransaction) { if (formattedOriginalAmount) { amountDescription += ` • ${translate('iou.original')} ${formattedOriginalAmount}`; @@ -301,7 +314,7 @@ function MoneyRequestView({report, parentReport, parentReportActions, policyCate IOU.editMoneyRequest(transaction, report.reportID, {billable: value})} + onToggle={saveBillable} /> )} diff --git a/src/libs/actions/IOU.js b/src/libs/actions/IOU.js index 802f0f00fffd..73cbabe8df80 100644 --- a/src/libs/actions/IOU.js +++ b/src/libs/actions/IOU.js @@ -1028,6 +1028,21 @@ function updateMoneyRequestDate(transactionID, transactionThreadReportID, val) { API.write('UpdateMoneyRequestDate', params, onyxData); } +/** + * Updates the billable field of a money request + * + * @param {String} transactionID + * @param {Number} transactionThreadReportID + * @param {String} val + */ +function updateMoneyRequestBillable(transactionID, transactionThreadReportID, val) { + const transactionChanges = { + billable: val, + }; + const {params, onyxData} = getUpdateMoneyRequestParams(transactionID, transactionThreadReportID, transactionChanges, true); + API.write('UpdateMoneyRequestBillable', params, onyxData); +} + /** * Edits an existing distance request * @@ -3403,6 +3418,7 @@ export { setUpDistanceTransaction, navigateToNextPage, updateMoneyRequestDate, + updateMoneyRequestBillable, replaceReceipt, detachReceipt, getIOUReportID, From 9e9e73914b20421ae619a935ebf986beea671c28 Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Mon, 8 Jan 2024 13:59:54 -0700 Subject: [PATCH 2/3] rm comment --- src/libs/actions/IOU.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/libs/actions/IOU.js b/src/libs/actions/IOU.js index 34988af63fa2..75ae60970451 100644 --- a/src/libs/actions/IOU.js +++ b/src/libs/actions/IOU.js @@ -1125,7 +1125,6 @@ function updateMoneyRequestBillable(transactionID, transactionThreadReportID, va } /** - * Edits an existing distance request * Updates the merchant field of a money request * * @param {String} transactionID From 6e50cc73d723831e6f86b006fedb04e0b800b492 Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Mon, 8 Jan 2024 14:29:03 -0700 Subject: [PATCH 3/3] get right param --- src/components/ReportActionItem/MoneyRequestView.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ReportActionItem/MoneyRequestView.js b/src/components/ReportActionItem/MoneyRequestView.js index dcded3aefb62..b9ecb647f437 100644 --- a/src/components/ReportActionItem/MoneyRequestView.js +++ b/src/components/ReportActionItem/MoneyRequestView.js @@ -180,7 +180,7 @@ function MoneyRequestView({report, parentReport, parentReportActions, policyCate let amountDescription = `${translate('iou.amount')}`; const saveBillable = useCallback( - ({billable: newBillable}) => { + (newBillable) => { // If the value hasn't changed, don't request to save changes on the server and just close the modal if (newBillable === TransactionUtils.getBillable(transaction)) { Navigation.dismissModal();