From db07a8d2ec074e6400041ed646fb53200fbb38dd Mon Sep 17 00:00:00 2001
From: Ryan Teguh <ryanteguh123@gmail.com>
Date: Tue, 5 Aug 2025 21:15:30 +0800
Subject: [PATCH 1/3] Fix: Missing Split indicator next to Amount when card
 expense is split

---
 src/components/ReportActionItem/MoneyRequestView.tsx | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx
index be705ba50800..fd6156dd3f37 100644
--- a/src/components/ReportActionItem/MoneyRequestView.tsx
+++ b/src/components/ReportActionItem/MoneyRequestView.tsx
@@ -298,6 +298,9 @@ function MoneyRequestView({allReports, report, policy, shouldShowAnimatedBackgro
         if (formattedOriginalAmount) {
             amountDescription += ` ${CONST.DOT_SEPARATOR} ${translate('iou.original')} ${formattedOriginalAmount}`;
         }
+        if (getOriginalTransactionWithSplitInfo(transaction).isExpenseSplit) {
+            amountDescription += ` ${CONST.DOT_SEPARATOR} ${translate('iou.split')}`;
+        }
         if (isCancelled) {
             amountDescription += ` ${CONST.DOT_SEPARATOR} ${translate('iou.canceled')}`;
         }

From 07ff33b9af023bcc0752e2f588f4b471f8163926 Mon Sep 17 00:00:00 2001
From: Ryan Teguh <ryanteguh123@gmail.com>
Date: Thu, 14 Aug 2025 18:04:26 +0800
Subject: [PATCH 2/3] Fix: Missing Split indicator next to Amount when card
 expense is split

---
 .../ReportActionItem/MoneyRequestView.tsx     | 20 ++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx
index 780d75bb933e..69549baf531c 100644
--- a/src/components/ReportActionItem/MoneyRequestView.tsx
+++ b/src/components/ReportActionItem/MoneyRequestView.tsx
@@ -62,7 +62,6 @@ import {
     getCurrency,
     getDescription,
     getDistanceInMeters,
-    getOriginalTransactionWithSplitInfo,
     getReimbursable,
     getTagForDisplay,
     getTaxName,
@@ -177,6 +176,21 @@ function MoneyRequestView({
     const [transactionBackup] = useOnyx(`${ONYXKEYS.COLLECTION.TRANSACTION_BACKUP}${getNonEmptyStringOnyxID(linkedTransactionID)}`, {canBeMissing: true});
     const transactionViolations = useTransactionViolations(transaction?.transactionID);
 
+    const originalTransactionIDFromComment = transaction?.comment?.originalTransactionID;
+    const [originalTransaction] = useOnyx(`${ONYXKEYS.COLLECTION.TRANSACTION}${originalTransactionIDFromComment ?? ''}`, {canBeMissing: true});
+    const isExpenseSplit = useMemo(() => {
+        const {originalTransactionID, source, splits} = transaction?.comment ?? {};
+
+        // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
+        if ((splits && splits.length > 0) || !originalTransactionID || source !== CONST.IOU.TYPE.SPLIT) {
+            return false;
+        }
+
+        // To determine if it’s a split expense, we check for the presence of `comment.splits` on the original transaction.
+        // Split expenses won’t have `comment.splits`, while split bills will have them.
+        return !originalTransaction?.comment?.splits;
+    }, [transaction, originalTransaction]);
+
     const {
         created: transactionDate,
         amount: transactionAmount,
@@ -340,7 +354,7 @@ function MoneyRequestView({
         if (formattedOriginalAmount) {
             amountDescription += ` ${CONST.DOT_SEPARATOR} ${translate('iou.original')} ${formattedOriginalAmount}`;
         }
-        if (getOriginalTransactionWithSplitInfo(transaction).isExpenseSplit) {
+        if (isExpenseSplit) {
             amountDescription += ` ${CONST.DOT_SEPARATOR} ${translate('iou.split')}`;
         }
         if (isCancelled) {
@@ -350,7 +364,7 @@ function MoneyRequestView({
         if (!isDistanceRequest && !isPerDiemRequest) {
             amountDescription += ` ${CONST.DOT_SEPARATOR} ${translate('iou.cash')}`;
         }
-        if (getOriginalTransactionWithSplitInfo(transaction).isExpenseSplit) {
+        if (isExpenseSplit) {
             amountDescription += ` ${CONST.DOT_SEPARATOR} ${translate('iou.split')}`;
         }
         if (isCancelled) {

From 3f2cff15b0d529ac8676fe937c6ef6880fbb3c3d Mon Sep 17 00:00:00 2001
From: Ryan Teguh <ryanteguh123@gmail.com>
Date: Sat, 16 Aug 2025 02:07:46 +0800
Subject: [PATCH 3/3] Fix: Missing Split indicator next to Amount when card
 expense is split

---
 .../ReportActionItem/MoneyRequestView.tsx       | 17 +++--------------
 src/libs/TransactionUtils/index.ts              | 14 +++++++++++++-
 2 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx
index c61e51569529..0b1467c52738 100644
--- a/src/components/ReportActionItem/MoneyRequestView.tsx
+++ b/src/components/ReportActionItem/MoneyRequestView.tsx
@@ -69,6 +69,7 @@ import {
     hasRoute as hasRouteTransactionUtils,
     isCardTransaction as isCardTransactionTransactionUtils,
     isDistanceRequest as isDistanceRequestTransactionUtils,
+    isExpenseSplit,
     isPerDiemRequest as isPerDiemRequestTransactionUtils,
     isScanning,
     shouldShowAttendees as shouldShowAttendeesTransactionUtils,
@@ -177,18 +178,6 @@ function MoneyRequestView({
 
     const originalTransactionIDFromComment = transaction?.comment?.originalTransactionID;
     const [originalTransaction] = useOnyx(`${ONYXKEYS.COLLECTION.TRANSACTION}${originalTransactionIDFromComment ?? ''}`, {canBeMissing: true});
-    const isExpenseSplit = useMemo(() => {
-        const {originalTransactionID, source, splits} = transaction?.comment ?? {};
-
-        // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
-        if ((splits && splits.length > 0) || !originalTransactionID || source !== CONST.IOU.TYPE.SPLIT) {
-            return false;
-        }
-
-        // To determine if it’s a split expense, we check for the presence of `comment.splits` on the original transaction.
-        // Split expenses won’t have `comment.splits`, while split bills will have them.
-        return !originalTransaction?.comment?.splits;
-    }, [transaction, originalTransaction]);
 
     const {
         created: transactionDate,
@@ -341,7 +330,7 @@ function MoneyRequestView({
         if (formattedOriginalAmount) {
             amountDescription += ` ${CONST.DOT_SEPARATOR} ${translate('iou.original')} ${formattedOriginalAmount}`;
         }
-        if (isExpenseSplit) {
+        if (isExpenseSplit(transaction, originalTransaction)) {
             amountDescription += ` ${CONST.DOT_SEPARATOR} ${translate('iou.split')}`;
         }
         if (isCancelled) {
@@ -351,7 +340,7 @@ function MoneyRequestView({
         if (!isDistanceRequest && !isPerDiemRequest) {
             amountDescription += ` ${CONST.DOT_SEPARATOR} ${translate('iou.cash')}`;
         }
-        if (isExpenseSplit) {
+        if (isExpenseSplit(transaction, originalTransaction)) {
             amountDescription += ` ${CONST.DOT_SEPARATOR} ${translate('iou.split')}`;
         }
         if (isCancelled) {
diff --git a/src/libs/TransactionUtils/index.ts b/src/libs/TransactionUtils/index.ts
index 445e1a7ec51a..4ab47fc02151 100644
--- a/src/libs/TransactionUtils/index.ts
+++ b/src/libs/TransactionUtils/index.ts
@@ -1814,6 +1814,17 @@ function shouldShowRTERViolationMessage(transactions?: Transaction[]) {
     return transactions?.length === 1 && hasPendingUI(transactions?.at(0), getTransactionViolations(transactions?.at(0), allTransactionViolations));
 }
 
+function isExpenseSplit(transaction: OnyxEntry<Transaction>, originalTransaction: OnyxEntry<Transaction>): boolean {
+    const {originalTransactionID, source, splits} = transaction?.comment ?? {};
+
+    // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
+    if ((splits && splits.length > 0) || !originalTransactionID || source !== CONST.IOU.TYPE.SPLIT) {
+        return false;
+    }
+
+    return !originalTransaction?.comment?.splits;
+}
+
 const getOriginalTransactionWithSplitInfo = (transaction: OnyxEntry<Transaction>) => {
     const {originalTransactionID, source, splits} = transaction?.comment ?? {};
     const originalTransaction = allTransactions?.[`${ONYXKEYS.COLLECTION.TRANSACTION}${originalTransactionID}`];
@@ -1828,7 +1839,7 @@ const getOriginalTransactionWithSplitInfo = (transaction: OnyxEntry<Transaction>
 
     // To determine if it’s a split bill or a split expense, we check for the presence of `comment.splits` on the original transaction.
     // Since both splits use `comment.originalTransaction`, but split expenses won’t have `comment.splits`.
-    return {isBillSplit: !!originalTransaction?.comment?.splits, isExpenseSplit: !originalTransaction?.comment?.splits, originalTransaction: originalTransaction ?? transaction};
+    return {isBillSplit: !!originalTransaction?.comment?.splits, isExpenseSplit: isExpenseSplit(transaction, originalTransaction), originalTransaction: originalTransaction ?? transaction};
 };
 
 /**
@@ -1975,6 +1986,7 @@ export {
     shouldShowViolation,
     isUnreportedAndHasInvalidDistanceRateTransaction,
     getTransactionViolationsOfTransaction,
+    isExpenseSplit,
 };
 
 export type {TransactionChanges};
