Problem
getStableReportSelector/reportStable already produce a stable report projection in MoneyRequestReportActionsList by omitting read-state heartbeat fields (lastReadTime, lastVisibleActionCreated, lastMessageText, etc.). The full report object was still passed to MoneyRequestReportTransactionList, so every last* field mutation (e.g. marking a report as read, receiving a message) re-rendered the entire transaction-list subtree even though nothing inside it reads those fields.
Solution
Pass reportStable (typed as StableReport) to MoneyRequestReportTransactionList instead of the full report. StableReport is structurally assignable to Report because the omitted fields are optional, so downstream row components and utility calls need no changes. The existing !!reportStable guard preserves conditional rendering. Read-state churn no longer triggers transaction-list re-renders; behavior stays the same. export type {StableReport} is added to src/selectors/Report.ts for import from the selector module.
PR
#92485
Issue Owner
Current Issue Owner: @aimane-chnaif
Problem
getStableReportSelector/reportStablealready produce a stable report projection inMoneyRequestReportActionsListby omitting read-state heartbeat fields (lastReadTime,lastVisibleActionCreated,lastMessageText, etc.). The fullreportobject was still passed toMoneyRequestReportTransactionList, so everylast*field mutation (e.g. marking a report as read, receiving a message) re-rendered the entire transaction-list subtree even though nothing inside it reads those fields.Solution
Pass
reportStable(typed asStableReport) toMoneyRequestReportTransactionListinstead of the fullreport.StableReportis structurally assignable toReportbecause the omitted fields are optional, so downstream row components and utility calls need no changes. The existing!!reportStableguard preserves conditional rendering. Read-state churn no longer triggers transaction-list re-renders; behavior stays the same.export type {StableReport}is added tosrc/selectors/Report.tsfor import from the selector module.PR
#92485
Issue Owner
Current Issue Owner: @aimane-chnaif