-
Notifications
You must be signed in to change notification settings - Fork 0
[CLEAN] Synthetic Benchmark PR #74112 - Make DebugReportActions use new SelectionList
#25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: base_pr_74112_20251204_6928
Are you sure you want to change the base?
[CLEAN] Synthetic Benchmark PR #74112 - Make DebugReportActions use new SelectionList
#25
Conversation
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
||||||||||||||||||||||||
PR Code Suggestions ✨Explore these optional code suggestions:
|
||||||||||||
User description
Benchmark PR Expensify#74112
Type: Clean (correct implementation)
Original PR Title: Make
DebugReportActionsuse newSelectionListOriginal PR Description:
Explanation of Change
Fixed Issues
$ Expensify#72970
PROPOSAL:
Tests
Settings->TroubleshootInboxActionstabOffline tests
QA Steps
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
screen-20251105-170746.mp4
Android: mWeb Chrome
iOS: Native
ios.mov
iOS: mWeb Safari
MacOS: Chrome / Safari
web.mov
MacOS: Desktop
Original PR URL: Expensify#74112
PR Type
Enhancement
Description
Refactor
DebugReportActionsto use newSelectionListAPIAdd
disableAutoFocusoption toTextInputOptionstypeSimplify text input ref handling with
mergeRefsutilityImplement auto-focus with
useFocusEffectand timeout delayUpdate text input to reset focused index on value change
Diagram Walkthrough
File Walkthrough
types.ts
Add disableAutoFocus option to TextInputOptionssrc/components/SelectionList/types.ts
disableAutoFocusproperty toTextInputOptionsto controlauto-focus behavior
refproperty from accepting function callbacks to onlyRefObjecttypeBaseSelectionList.tsx
Simplify text input ref handling and focus managementsrc/components/SelectionList/BaseSelectionList.tsx
handleTextInputReffunction that managed ref forwardingfocusTextInputcallback to handle text input focusprogrammatically
innerTextInputRefdirectly toTextInputsetFocusedIndexprop toTextInputcomponentTextInput.tsx
Add auto-focus with useFocusEffect and ref mergingsrc/components/SelectionList/components/TextInput.tsx
useFocusEffecthook to auto-focus text input with configurabledelay
mergeRefsutility to merge external and internal refssetFocusedIndexandfocusTextInputprops for parent componentcontrol
handleTextInputChangecallback to reset focused index on textchange
shouldShowHeaderMessagelogic to show message in moreconditions
DebugReportActions.tsx
Migrate to new SelectionList API with flat data structuresrc/pages/Debug/Report/DebugReportActions.tsx
SelectionListWithSectionsto newSelectionListcomponentRadioListItemto use new path structuresectionsprop to flatdataarray withkeyForListpropertytextInputOptionsobject to consolidate text inputconfiguration
SelectionListprops to use new API withtextInputOptionsandstyle