Skip to content

Commit

Permalink
Merge pull request #38073 from nkdengineer/fix/38042-tag-list-show-ol…
Browse files Browse the repository at this point in the history
…d-tag

Fix/38042: Tag list show old tag

(cherry picked from commit 6eb0f71)
  • Loading branch information
luacmartins authored and OSBotify committed Mar 11, 2024
1 parent f020ba0 commit 355d101
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions src/pages/iou/request/step/IOURequestStepTag.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import lodashGet from 'lodash/get';
import lodashIsEmpty from 'lodash/isEmpty';
import PropTypes from 'prop-types';
import React, {useMemo} from 'react';
import {withOnyx} from 'react-native-onyx';
Expand Down Expand Up @@ -35,6 +37,9 @@ const propTypes = {
/** Holds data related to Money Request view state, rather than the underlying Money Request data. */
transaction: transactionPropTypes,

/** The draft transaction that holds data to be persisted on the current transaction */
splitDraftTransaction: transactionPropTypes,

/** The report currently being used */
report: reportPropTypes,

Expand Down Expand Up @@ -66,6 +71,7 @@ const defaultProps = {
policyTags: null,
policyCategories: null,
transaction: {},
splitDraftTransaction: {},
reportActions: {},
};

Expand All @@ -78,6 +84,7 @@ function IOURequestStepTag({
params: {action, tagIndex: rawTagIndex, transactionID, backTo, iouType, reportActionID},
},
transaction,
splitDraftTransaction,
reportActions,
session,
}) {
Expand All @@ -86,10 +93,13 @@ function IOURequestStepTag({

const tagIndex = Number(rawTagIndex);
const policyTagListName = PolicyUtils.getTagListName(policyTags, tagIndex);
const transactionTag = TransactionUtils.getTag(transaction);
const tag = TransactionUtils.getTag(transaction, tagIndex);

const isEditing = action === CONST.IOU.ACTION.EDIT;
const isSplitBill = iouType === CONST.IOU.TYPE.SPLIT;
const isEditingSplitBill = isEditing && isSplitBill;
const currentTransaction = isEditingSplitBill && !lodashIsEmpty(splitDraftTransaction) ? splitDraftTransaction : transaction;
const transactionTag = TransactionUtils.getTag(currentTransaction);
const tag = TransactionUtils.getTag(currentTransaction, tagIndex);
const reportAction = reportActions[report.parentReportActionID || reportActionID];
const canEditSplitBill = isSplitBill && reportAction && session.accountID === reportAction.actorAccountID && TransactionUtils.areRequiredFieldsEmpty(transaction);
const policyTagLists = useMemo(() => PolicyUtils.getTagLists(policyTags), [policyTags]);
Expand All @@ -110,7 +120,7 @@ function IOURequestStepTag({
const updateTag = (selectedTag) => {
const isSelectedTag = selectedTag.searchText === tag;
const updatedTag = IOUUtils.insertTagIntoTransactionTagsString(transactionTag, isSelectedTag ? '' : selectedTag.searchText, tagIndex);
if (isSplitBill && isEditing) {
if (isEditingSplitBill) {
IOU.setDraftSplitTransaction(transactionID, {tag: updatedTag});
navigateBack();
return;
Expand Down Expand Up @@ -157,6 +167,12 @@ export default compose(
withWritableReportOrNotFound,
withFullTransactionOrNotFound,
withOnyx({
splitDraftTransaction: {
key: ({route}) => {
const transactionID = lodashGet(route, 'params.transactionID', 0);
return `${ONYXKEYS.COLLECTION.SPLIT_TRANSACTION_DRAFT}${transactionID}`;
},
},
policy: {
key: ({report}) => `${ONYXKEYS.COLLECTION.POLICY}${report ? report.policyID : '0'}`,
},
Expand Down

0 comments on commit 355d101

Please sign in to comment.