[No QA] feat: Add sentryLabel for INP debugging across report page components (part 1)#77397
Conversation
- Add SENTRY_LABEL constants to CONST/index.ts for HEADER_VIEW, SEARCH, REPORT, SIDEBAR, LHN, and CONTEXT_MENU
- Add sentryLabel to HeaderView.tsx (back button, details button, task action button)
- Add sentryLabel to FloatingMessageCounter.tsx
- Add sentryLabel to ListBoundaryLoader.tsx
- Add sentryLabel to PureReportActionItem.tsx
- Add sentryLabel to AttachmentPickerWithMenuItems.tsx (create, expand, collapse buttons)
- Add sentryLabel to SendButton.tsx
- Add sentryLabel to ReportActionItemCreated.tsx
- Add sentryLabel to ReportActionItemMessage.tsx (enter signer info, add bank account buttons)
- Add sentryLabel to ReportActionItemMessageEdit.tsx (cancel, save buttons)
- Add sentryLabel to ReportActionItemSingle.tsx (avatar, actor buttons)
- Add sentryLabel to ReportActionItemThread.tsx
- Add sentryLabel to ThreadDivider.tsx
- Add sentryLabel to SignInButton.tsx
- Add sentryLabel to OptionRowLHN.tsx
- Add sentryLabel prop to MenuItem, ContextMenuItem, and BaseMiniContextMenuItem components
- Add sentryLabel to all context menu actions in ContextMenuActions.tsx
- Update BaseReportActionContextMenu.tsx to use contextAction.sentryLabel directly
Add sentryLabel prop to ButtonWithDropdownMenu and DropdownOption types to enable Sentry INP (Interaction to Next Paint) tracking. Labels added for: - More Menu button and all secondary actions (View details, Export, Submit, etc.) - Export submenu options (Basic export, Export to integration, All Data exports) - Add Expense submenu options (Create expense, Track distance, Add unreported)
Add sentryLabel to all menu items in the "+" button (Attachment Picker): - Create expense - Track distance - Split expense - Pay someone - Send invoice - Create report - Assign task - Add attachment
Add sentryLabel to EmojiPickerButton component for Sentry INP tracking.
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
In this PR, eslint returns an error due to a deprecated function that wasn't added in this PR. Replacing this function isn't obvious and would require QA testing of this PR. Therefore, I decided not to fix this error. |
|
PR doesn’t need product input as a tooling update PR. Unassigning and unsubscribing myself. |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safari |
…page # Conflicts: # src/pages/home/report/PureReportActionItem.tsx
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/rlinoz in version: 9.2.79-0 🚀
|
|
🚀 Deployed to staging by https://github.com/rlinoz in version: 9.2.81-0 🚀
|
|
🚀 Deployed to production by https://github.com/AndrewGable in version: 9.2.81-5 🚀
|
|
🚀 Deployed to production by https://github.com/AndrewGable in version: 9.2.81-5 🚀
|
Explanation of Change
This PR adds Sentry INP (Interaction to Next Paint) labels to interactive components on the report page to enable performance monitoring and debugging of user interactions.
Changes made:
Added
SENTRY_LABELconstants insrc/CONST/index.tsfor the following categories:HEADER_VIEW- back button, details button, task action buttonSEARCH- search buttonREPORT- floating message counter, send button, attachment picker buttons/menu items, emoji picker, report action items, thread divider, moderation buttonSIDEBAR- sign in buttonLHN- option rowCONTEXT_MENU- all context menu actions (reply, mark as read/unread, edit, hold/unhold, copy actions, pin/unpin, delete, etc.)MORE_MENU- all secondary actions (view details, export, submit, approve, hold, split, merge, delete, etc.)Extended component types with optional
sentryLabelprop:MenuItemContextMenuItemBaseMiniContextMenuItemButtonWithDropdownMenuandDropdownOptionContextMenuActionApplied labels to interactive elements across report page components:
HeaderView.tsxMoneyReportHeader.tsxAttachmentPickerWithMenuItems.tsxContextMenuActions.tsxEmojiPickerButton.tsxFloatingMessageCounter.tsxSendButton.tsxReportActionItem*componentsOptionRowLHN.tsxSignInButton.tsxNo logic changes
This PR contains no functional changes - only metadata annotations for Sentry performance tracking.
Fixed Issues
$ #76128
PROPOSAL:
Tests
[data-sentry-label]attribute using Ctrl+F / Cmd+Fdata-sentry-labelattributesNote: This is the first batch of labels for the report page. Not all interactive elements are covered yet - additional labels will be added in follow-up PRs.
Offline 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