Closed
Description
Problem
MoneyRequestAccountantSelector.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,areOptionsInitialized - Called with:
{ shouldInitialize: didScreenTransitionEnd } - File:
src/pages/iou/request/MoneyRequestAccountantSelector.tsx
How options are used:
options.reportsandoptions.personalDetailsare passed togetValidOptions()to build accountant selection optionsareOptionsInitializedguardsdefaultOptionscomputationareOptionsInitializedguardschatOptionscomputationareOptionsInitializedguards section buildingareOptionsInitializedis used inshowLoadingPlaceholder
Migration steps:
- Replace
import {useOptionsList} from '@components/OptionListContextProvider'withimport useFilteredOptions from '@hooks/useFilteredOptions' - Replace
useOptionsList({ shouldInitialize: didScreenTransitionEnd })withuseFilteredOptions({ enabled: didScreenTransitionEnd }) - Replace
areOptionsInitializedwith!isLoading(oroptions !== null) - Update all guards (
defaultOptions,chatOptions, section building,showLoadingPlaceholder) accordingly - Handle the
nulloptions case ingetValidOptions()call
Complexity: Medium
Reference PR: #74071
Tests
- Verify the accountant selector in money request flow works correctly
- Verify accountant filtering and selection works
- Verify loading placeholders show correctly while options compute
- Verify the screen transition delay is properly handled
- Verify no errors appear in the JS console
- Test on all platforms (iOS, Android, Web, Desktop)
Activity
melvin-bot commentedon Feb 19, 2026
@hoangzinh, @mountiny, @shubham1206agra Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!
mountiny commentedon Feb 20, 2026
In the backlog
melvin-bot commentedon Mar 5, 2026
@hoangzinh 12 days overdue now... This issue's end is nigh!
mountiny commentedon Mar 5, 2026
@shubham1206agra @hungvu193 How is this one looking?
hoangzinh commentedon Mar 6, 2026
@mountiny we're finding an approach for
ShareTabhere first, before apply to thisMoneyRequestAccountantSelector29 remaining items
melvin-bot commentedon Apr 10, 2026
@hoangzinh 6 days overdue. This is scarier than being forced to listen to Vogon poetry!
[-]Migrate MoneyRequestAccountantSelector.tsx from useOptionsList to useFilteredOptions[/-][+][Due for payment 2026-04-30] Migrate MoneyRequestAccountantSelector.tsx from useOptionsList to useFilteredOptions[/+]melvin-bot commentedon Apr 23, 2026
Reviewinglabel has been removed, please complete the "BugZero Checklist".melvin-bot commentedon Apr 23, 2026
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.3.61-4 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2026-04-30. 🎊
For reference, here are some details about the assignees on this issue:
hoangzinh commentedon Apr 24, 2026
Cool. We can close this issue