From 5af9aa7cadefeb915f40487def45b3149f63a799 Mon Sep 17 00:00:00 2001
From: daledah <daleda261@outlook.com>
Date: Tue, 9 Dec 2025 00:57:27 +0700
Subject: [PATCH 1/5] fix 76625

---
 src/pages/home/report/PureReportActionItem.tsx | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/pages/home/report/PureReportActionItem.tsx b/src/pages/home/report/PureReportActionItem.tsx
index 61ebc9ab350..4d627893aef 100644
--- a/src/pages/home/report/PureReportActionItem.tsx
+++ b/src/pages/home/report/PureReportActionItem.tsx
@@ -192,7 +192,7 @@ import ONYXKEYS from '@src/ONYXKEYS';
 import ROUTES from '@src/ROUTES';
 import type * as OnyxTypes from '@src/types/onyx';
 import type {Errors} from '@src/types/onyx/OnyxCommon';
-import type {JoinWorkspaceResolution, OriginalMessageMovedTransaction} from '@src/types/onyx/OriginalMessage';
+import type {JoinWorkspaceResolution, OriginalMessageMovedTransaction, OriginalMessageUnreportedTransaction} from '@src/types/onyx/OriginalMessage';
 import {isEmptyObject} from '@src/types/utils/EmptyObject';
 import {RestrictedReadOnlyContextMenuActions} from './ContextMenu/ContextMenuActions';
 import MiniReportActionContextMenu from './ContextMenu/MiniReportActionContextMenu';
@@ -1318,9 +1318,21 @@ function PureReportActionItem({
                 </ReportActionItemBasicMessage>
             );
         } else if (action.actionName === CONST.REPORT.ACTIONS.TYPE.UNREPORTED_TRANSACTION) {
+            const unreportedTransactionOriginalMessage = getOriginalMessage(action as OnyxTypes.ReportAction<typeof CONST.REPORT.ACTIONS.TYPE.UNREPORTED_TRANSACTION>) ?? {};
+            const {fromReportID} = unreportedTransactionOriginalMessage as OriginalMessageUnreportedTransaction;
+            const fromReport = allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${fromReportID}`];
+            const isPendingDelete = fromReport?.pendingFields?.preview === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE;
+            const unreportedTransactionMessage = getUnreportedTransactionMessage(action);
+            const htmlContent = isPendingDelete
+                ? `<del><comment><muted-text>${unreportedTransactionMessage}</muted-text></comment></del>`
+                : `<comment><muted-text>${unreportedTransactionMessage}</muted-text></comment>`;
+
             children = (
                 <ReportActionItemBasicMessage message="">
-                    <RenderHTML html={`<comment><muted-text>${getUnreportedTransactionMessage(action)}</muted-text></comment>`} />
+                    <RenderHTML
+                        html={htmlContent}
+                        onLinkPress={isPendingDelete ? () => {} : undefined}
+                    />
                 </ReportActionItemBasicMessage>
             );
         } else if (action.actionName === CONST.REPORT.ACTIONS.TYPE.MERGED_WITH_CASH_TRANSACTION) {

From 3425530fa6abc01fbe18b60fefd88b1c2616182f Mon Sep 17 00:00:00 2001
From: daledah <daleda261@outlook.com>
Date: Fri, 19 Dec 2025 15:35:11 +0700
Subject: [PATCH 2/5] cover move to workspace report

---
 src/pages/home/report/PureReportActionItem.tsx | 9 ++++++++-
 src/pages/workspace/WorkspacesListPage.tsx     | 2 +-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/pages/home/report/PureReportActionItem.tsx b/src/pages/home/report/PureReportActionItem.tsx
index dc9b34d8dc2..11453057bd0 100644
--- a/src/pages/home/report/PureReportActionItem.tsx
+++ b/src/pages/home/report/PureReportActionItem.tsx
@@ -1312,8 +1312,12 @@ function PureReportActionItem({
             const {toReportID, fromReportID} = movedTransactionOriginalMessage as OriginalMessageMovedTransaction;
             const toReport = allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${toReportID}`];
             const fromReport = allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${fromReportID}`];
+            const isPendingDelete = fromReport?.pendingFields?.preview === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE;
             // When the transaction is moved from personal space (unreported), fromReportID will be "0" which doesn't exist in allReports
             const hasFromReport = fromReportID === CONST.REPORT.UNREPORTED_REPORT_ID ? true : !!fromReport;
+            const htmlContent = true
+                ? `<del><comment><muted-text>${getMovedTransactionMessage(action)}</muted-text></comment></del>`
+                : `<comment><muted-text>${getMovedTransactionMessage(action)}</muted-text></comment>`;
             // When expenses are merged multiple times, the previous fromReportID may reference a deleted report,
             // making it impossible to retrieve the report name for display
             // Ref: https://github.com/Expensify/App/issues/70338
@@ -1322,7 +1326,10 @@ function PureReportActionItem({
             } else {
                 children = (
                     <ReportActionItemBasicMessage message="">
-                        <RenderHTML html={`<comment><muted-text>${getMovedTransactionMessage(action)}</muted-text></comment>`} />
+                        <RenderHTML
+                            html={htmlContent}
+                            onLinkPress={isPendingDelete ? () => {} : undefined}
+                        />
                     </ReportActionItemBasicMessage>
                 );
             }
diff --git a/src/pages/workspace/WorkspacesListPage.tsx b/src/pages/workspace/WorkspacesListPage.tsx
index 7521e100232..540bf723164 100755
--- a/src/pages/workspace/WorkspacesListPage.tsx
+++ b/src/pages/workspace/WorkspacesListPage.tsx
@@ -593,7 +593,7 @@ function WorkspacesListPage() {
             domainItems.push({
                 listItemType: 'domain',
                 accountID: domain.accountID,
-                title: Str.extractEmailDomain(domain.email),
+                title: Str.extractEmailDomain(domain?.email ?? ''),
                 action: () => navigateToDomain({domainAccountID: domain.accountID, isAdmin}),
                 isAdmin,
                 isValidated: domain.validated,

From 0808284ebe84dd0a1102ab025d469e4717b158c0 Mon Sep 17 00:00:00 2001
From: daledah <daleda261@outlook.com>
Date: Fri, 19 Dec 2025 15:35:27 +0700
Subject: [PATCH 3/5] remove useless code

---
 src/pages/workspace/WorkspacesListPage.tsx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/pages/workspace/WorkspacesListPage.tsx b/src/pages/workspace/WorkspacesListPage.tsx
index 540bf723164..7521e100232 100755
--- a/src/pages/workspace/WorkspacesListPage.tsx
+++ b/src/pages/workspace/WorkspacesListPage.tsx
@@ -593,7 +593,7 @@ function WorkspacesListPage() {
             domainItems.push({
                 listItemType: 'domain',
                 accountID: domain.accountID,
-                title: Str.extractEmailDomain(domain?.email ?? ''),
+                title: Str.extractEmailDomain(domain.email),
                 action: () => navigateToDomain({domainAccountID: domain.accountID, isAdmin}),
                 isAdmin,
                 isValidated: domain.validated,

From 3cec0eb651241e50ed4a273adaef9c86ed56ed07 Mon Sep 17 00:00:00 2001
From: daledah <daleda261@outlook.com>
Date: Mon, 22 Dec 2025 08:37:07 +0700
Subject: [PATCH 4/5] fix lint

---
 src/pages/home/report/PureReportActionItem.tsx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/pages/home/report/PureReportActionItem.tsx b/src/pages/home/report/PureReportActionItem.tsx
index 2133d254f7a..b5e6094773e 100644
--- a/src/pages/home/report/PureReportActionItem.tsx
+++ b/src/pages/home/report/PureReportActionItem.tsx
@@ -1316,7 +1316,7 @@ function PureReportActionItem({
             const isPendingDelete = fromReport?.pendingFields?.preview === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE;
             // When the transaction is moved from personal space (unreported), fromReportID will be "0" which doesn't exist in allReports
             const hasFromReport = fromReportID === CONST.REPORT.UNREPORTED_REPORT_ID ? true : !!fromReport;
-            const htmlContent = true
+            const htmlContent = isPendingDelete
                 ? `<del><comment><muted-text>${getMovedTransactionMessage(action)}</muted-text></comment></del>`
                 : `<comment><muted-text>${getMovedTransactionMessage(action)}</muted-text></comment>`;
             // When expenses are merged multiple times, the previous fromReportID may reference a deleted report,

From 5affe2f9d8191b52db6fe34d12043ae102e0e206 Mon Sep 17 00:00:00 2001
From: daledah <daleda261@outlook.com>
Date: Fri, 26 Dec 2025 15:03:36 +0700
Subject: [PATCH 5/5] remove link in native

---
 src/pages/home/report/PureReportActionItem.tsx | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/src/pages/home/report/PureReportActionItem.tsx b/src/pages/home/report/PureReportActionItem.tsx
index 0dc4b2461da..707c5c62ea3 100644
--- a/src/pages/home/report/PureReportActionItem.tsx
+++ b/src/pages/home/report/PureReportActionItem.tsx
@@ -57,6 +57,7 @@ import {getLatestErrorMessageField, isReceiptError} from '@libs/ErrorUtils';
 import focusComposerWithDelay from '@libs/focusComposerWithDelay';
 import {isReportMessageAttachment} from '@libs/isReportMessageAttachment';
 import Navigation from '@libs/Navigation/Navigation';
+import Parser from '@libs/Parser';
 import Permissions from '@libs/Permissions';
 import {getDisplayNameOrDefault} from '@libs/PersonalDetailsUtils';
 import {getCleanedTagName, getPersonalPolicy, isPolicyAdmin, isPolicyMember, isPolicyOwner} from '@libs/PolicyUtils';
@@ -1317,7 +1318,7 @@ function PureReportActionItem({
             // When the transaction is moved from personal space (unreported), fromReportID will be "0" which doesn't exist in allReports
             const hasFromReport = fromReportID === CONST.REPORT.UNREPORTED_REPORT_ID ? true : !!fromReport;
             const htmlContent = isPendingDelete
-                ? `<del><comment><muted-text>${getMovedTransactionMessage(action)}</muted-text></comment></del>`
+                ? `<del><comment><muted-text>${Parser.htmlToText(getMovedTransactionMessage(action))}</muted-text></comment></del>`
                 : `<comment><muted-text>${getMovedTransactionMessage(action)}</muted-text></comment>`;
             // When expenses are merged multiple times, the previous fromReportID may reference a deleted report,
             // making it impossible to retrieve the report name for display
@@ -1327,10 +1328,7 @@ function PureReportActionItem({
             } else {
                 children = (
                     <ReportActionItemBasicMessage message="">
-                        <RenderHTML
-                            html={htmlContent}
-                            onLinkPress={isPendingDelete ? () => {} : undefined}
-                        />
+                        <RenderHTML html={htmlContent} />
                     </ReportActionItemBasicMessage>
                 );
             }
@@ -1353,15 +1351,12 @@ function PureReportActionItem({
             const isPendingDelete = fromReport?.pendingFields?.preview === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE;
             const unreportedTransactionMessage = getUnreportedTransactionMessage(action);
             const htmlContent = isPendingDelete
-                ? `<del><comment><muted-text>${unreportedTransactionMessage}</muted-text></comment></del>`
+                ? `<del><comment><muted-text>${Parser.htmlToText(unreportedTransactionMessage)}</muted-text></comment></del>`
                 : `<comment><muted-text>${unreportedTransactionMessage}</muted-text></comment>`;
 
             children = (
                 <ReportActionItemBasicMessage message="">
-                    <RenderHTML
-                        html={htmlContent}
-                        onLinkPress={isPendingDelete ? () => {} : undefined}
-                    />
+                    <RenderHTML html={htmlContent} />
                 </ReportActionItemBasicMessage>
             );
         } else if (action.actionName === CONST.REPORT.ACTIONS.TYPE.MERGED_WITH_CASH_TRANSACTION) {
