Skip to content

[$250] [Perf] Scope REPORT_ATTRIBUTES subscription to per-row level in LHNOptionsList #83914

Description

@cristipaval

Problem

LHNOptionsList subscribes to the full DERIVED.REPORT_ATTRIBUTES map via useReportAttributes() and passes both a per-row slice (reportAttributes) and the entire map (reportAttributesDerived) to each row. The derived value returns a new reference on every report change, defeating React.memo on all rows.

Proposed fix

Investigate if this subscription can be narrowed down at the row level, e.g.:

  • useOnyx(ONYXKEYS.DERIVED.REPORT_ATTRIBUTES, { selector: (data) => data?.reports?.[reportID] }) in OptionRowLHNData
  • Remove the reportAttributesDerived prop entirely.
Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~022041550799034526884
  • Upwork Job ID: 2041550799034526884
  • Last Price Increase: 2026-04-07
Issue OwnerCurrent Issue Owner: @mallenexpensify

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionBugSomething is broken. Auto assigns a BugZero manager.DailyKSv2ExternalAdded to denote the issue can be worked on by a contributorImprovementItem broken or needs improvement.

Type

Fields

No fields configured for Task.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions