-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Closed
Closed
Copy link
Description
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:
optionsonly - Called with: no arguments
- File:
src/pages/iou/request/step/IOURequestEditReportCommon.tsx
How options are used:
- Only
options.reportsis used in auseMemoto find matching report options foralternateText,brickRoadIndicator, andpolicyIDenrichment - No loading/initialization flags are checked
Migration steps:
- Replace
import {useOptionsList} from '@components/OptionListContextProvider'withimport useFilteredOptions from '@hooks/useFilteredOptions' - Replace
useOptionsList()call withuseFilteredOptions({ enabled: true }) - Handle the
nullcase for options (when loading) -- default to empty reports array in the useMemo - 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)
Reactions are currently unavailable