-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Open
Labels
Awaiting PaymentAuto-added when associated PR is deployed to productionAuto-added when associated PR is deployed to productionTaskWeeklyKSv2KSv2
Description
Problem
ShareTab.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: no arguments (defaults to
shouldInitialize: true) - File:
src/pages/Share/ShareTab.tsx
How options are used:
optionsis passed togetSearchOptions()to buildsearchOptionsareOptionsInitializedgatessearchOptionscomputation andshowLoadingPlaceholderareOptionsInitializedcontrols whetherstyledRecentReportsare shown in list data
Migration steps:
- Replace
import {useOptionsList} from '@components/OptionListContextProvider'withimport useFilteredOptions from '@hooks/useFilteredOptions' - Replace
useOptionsList()call withuseFilteredOptions({ enabled: true })(or tie to screen transition if applicable) - Replace
areOptionsInitializedchecks with!isLoading(oroptions !== null) - Update
showLoadingPlaceholderand list data guards accordingly
Complexity: Simple
Reference PR: #74071
Tests
- Verify the Share tab displays correctly and lists appear without lag
- Verify loading placeholders show correctly while options compute
- Verify search functionality works within the Share tab
- Verify no errors appear in the JS console
- Test on all platforms (iOS, Android, Web, Desktop)
Issue Owner
Current Issue Owner: @shubham1206agraReactions are currently unavailable
Metadata
Metadata
Labels
Awaiting PaymentAuto-added when associated PR is deployed to productionAuto-added when associated PR is deployed to productionTaskWeeklyKSv2KSv2