Problem
In MoneyRequestReportView, transaction rows were not given a transactionThreadReportID. Because of that, TransactionItemRowRBR could never take its early-return path and always mounted the heavy TransactionItemRowRBRInner, which opens 6 Onyx subscriptions for every transaction row — including rows with nothing to display in the RBR (no violations, missing-field errors, transaction errors, or thread errors).
Solution
Precompute a transactionID → transaction-thread report ID map once in MoneyRequestReportTransactionList (a single pass over report actions) and pass the resulting ID down to each row. With the thread ID present, TransactionItemRowRBR can early-return for clean rows and skip mounting the RBR inner, eliminating those 6 subscriptions per clean row. The ID is computed once at the list level rather than per row to avoid O(transactions × actions) re-scans. TransactionItemRow accepts transactionThreadReportID as an optional prop and falls back to its existing per-row lookup when callers do not supply it.
PR
#92483
Issue Owner
Current Issue Owner: @aimane-chnaif
Problem
In
MoneyRequestReportView, transaction rows were not given atransactionThreadReportID. Because of that,TransactionItemRowRBRcould never take its early-return path and always mounted the heavyTransactionItemRowRBRInner, which opens 6 Onyx subscriptions for every transaction row — including rows with nothing to display in the RBR (no violations, missing-field errors, transaction errors, or thread errors).Solution
Precompute a
transactionID → transaction-thread report IDmap once inMoneyRequestReportTransactionList(a single pass over report actions) and pass the resulting ID down to each row. With the thread ID present,TransactionItemRowRBRcan early-return for clean rows and skip mounting the RBR inner, eliminating those 6 subscriptions per clean row. The ID is computed once at the list level rather than per row to avoid O(transactions × actions) re-scans.TransactionItemRowacceptstransactionThreadReportIDas an optional prop and falls back to its existing per-row lookup when callers do not supply it.PR
#92483
Issue Owner
Current Issue Owner: @aimane-chnaif