Skip to content

perf: virtualise transaction list in report screen #91425

Description

@mountiny

Problem

On heavy money-request reports, the transactions list in the RHP was rendered via a plain .map() inside the parent FlatList's ListHeaderComponent. Because ListHeaderComponent is not virtualised, every transaction rendered synchronously, pushing report open time to roughly 20–30 seconds for reports with ~1,600 expenses.

Solution

Merged the inner transactions list and the outer report-actions list into a single virtualised list. MoneyRequestReportTransactionList now exposes its items, renderer, and chrome JSX via a render-prop controller; MoneyRequestReportActionsList builds one unified data array ([transactions, footer, reportActions]) with a discriminated-union renderItem so only visible rows mount.

PR

#91422

Issue OwnerCurrent Issue Owner: @aimane-chnaif

Metadata

Metadata

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions