Skip to content

Migrate IOURequestEditReportCommon.tsx from useOptionsList to useFilteredOptions #82183

@mountiny

Description

@mountiny

Problem

IOURequestEditReportCommon.tsx currently uses the useOptionsList hook from OptionListContextProvider, which causes unnecessary background recalculations on every personal details or reports change.

This is part of a larger effort to remove OptionListContextProvider entirely. See parent issue #82193 for full context.

Solution

Replace useOptionsList with useFilteredOptions following the pattern established in PR #74071 (NewChatPage migration).

Current usage:

  • Properties used: options only
  • Called with: no arguments
  • File: src/pages/iou/request/step/IOURequestEditReportCommon.tsx

How options are used:

  • Only options.reports is used in a useMemo to find matching report options for alternateText, brickRoadIndicator, and policyID enrichment
  • No loading/initialization flags are checked

Migration steps:

  1. Replace import {useOptionsList} from '@components/OptionListContextProvider' with import useFilteredOptions from '@hooks/useFilteredOptions'
  2. Replace useOptionsList() call with useFilteredOptions({ enabled: true })
  3. Handle the null case for options (when loading) -- default to empty reports array in the useMemo
  4. The rest of the logic should work as-is since it only reads options.reports

Complexity: Simple

Reference PR: #74071

Tests

  • Verify editing a money request report works correctly
  • Verify the report selector shows correct alternate text and indicators
  • Verify no errors appear in the JS console
  • Test on all platforms (iOS, Android, Web, Desktop)

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions