Skip to content

Migrate IOURequestEditReportCommon.tsx from useOptionsList to useFilteredOptions #82183

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

Fields

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