Skip to content

[Due for payment 2026-03-24] Add reasonAttributes to ActivityIndicator usage sites #83394

Closed

Description

@MelvinBot

Problem

As part of #81683, we need to add reasonAttributes to all skeleton components so that Sentry spans carry structured metadata about why a loading indicator is visible. This helps engineers debug infinite skeleton loading states.

Solution

Add reasonAttributes to all usage sites of ActivityIndicator (src/components/ActivityIndicator.tsx).

At each usage site:

  1. Pass a reasonAttributes prop with a context string identifying the parent component (e.g. 'ParentComponent.ChildComponent')
  2. Include relevant boolean state variables that determine the loading state (e.g. isLoading, isImageLoaded, isDownloading)

Example

const reasonAttributes: SkeletonSpanReasonAttributes = {
    context: 'ParentComponent',
    isLoading,
    isDataReady,
};

<ActivityIndicator reasonAttributes={reasonAttributes} />

Reference

Scope

Issue OwnerCurrent Issue Owner: @sosek108

Activity

  1. sosek108 commented on Feb 25, 2026

    @sosek108
    Contributor

    @MelvinBot There are plenty of files to refactor in this issue. Propose a split so these can be done in smaller chunks in multiple PRs

  2. youssef-lr commented on Feb 26, 2026

    @youssef-lr
    Contributor

    @MelvinBot can you check the comment above

  3. MelvinBot commented on Feb 26, 2026

    @MelvinBot
    ContributorAuthor

    👋 I checked out sosek108's comment asking for a split. Here's a proposed breakdown of the remaining 51 files that need reasonAttributes added to ActivityIndicator, organized into 7 PRs by domain:


    PR 1: Core Shared Components (~11 files)

    • src/components/FullscreenLoadingIndicator.tsx (has reasonAttributes prop but doesn't forward it to <ActivityIndicator> — needs fix)
    • src/components/Button/index.tsx
    • src/components/MenuItem.tsx
    • src/components/AddressSearch/index.tsx (2 usages)
    • src/components/AddPlaidBankAccount.tsx
    • src/components/PlaidLink/index.tsx
    • src/components/MapView/MapView.website.tsx
    • src/components/AddToWalletButton/index.native.tsx
    • src/components/MoneyReportHeader.tsx
    • src/components/Domain/CopyableTextField.tsx
    • src/components/SidePanel/HelpComponents/HelpContent.tsx

    PR 2: Charts & Data Visualization (6 files)

    • src/components/Charts/BarChart/index.tsx
    • src/components/Charts/BarChart/BarChartContent.tsx
    • src/components/Charts/LineChart/index.tsx
    • src/components/Charts/LineChart/LineChartContent.tsx
    • src/components/Charts/PieChart/index.tsx
    • src/components/Charts/PieChart/PieChartContent.tsx

    PR 3: Report Actions, Text Input & Attachment Components (6 files)

    • src/components/ReportActionItem/MoneyReportView.tsx
    • src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx
    • src/components/TextInput/BaseTextInput/implementation/index.tsx
    • src/components/TextInput/BaseTextInput/implementation/index.native.tsx
    • src/components/Attachments/AttachmentView/DefaultAttachmentView/index.tsx
    • src/components/SelectionListWithSections/Search/TransactionGroupListExpanded.tsx

    PR 4: Workspace Settings Pages (10 files)

    • src/pages/workspace/categories/WorkspaceCategoriesPage.tsx
    • src/pages/workspace/tags/WorkspaceTagsPage.tsx
    • src/pages/workspace/tags/WorkspaceViewTagsPage.tsx
    • src/pages/workspace/taxes/WorkspaceTaxesPage.tsx
    • src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx
    • src/pages/workspace/perDiem/WorkspacePerDiemPage.tsx
    • src/pages/workspace/reports/WorkspaceReportsPage.tsx
    • src/pages/workspace/accounting/PolicyAccountingPage.tsx
    • src/pages/workspace/accounting/qbd/QuickBooksDesktopSetupPage.tsx
    • src/pages/workspace/rules/MerchantRules/PreviewMatchesPage.tsx

    PR 5: Workspace Company Cards (5 files)

    • src/pages/workspace/companyCards/addNew/PlaidConnectionStep.tsx
    • src/pages/workspace/companyCards/BankConnection/index.tsx
    • src/pages/workspace/companyCards/BankConnection/index.native.tsx
    • src/pages/workspace/companyCards/assignCard/TransactionStartDateStep.tsx
    • src/pages/workspace/companyCards/WorkspaceCompanyCardDetailsPage.tsx

    PR 6: IOU Request Steps (5 files)

    • src/pages/iou/request/step/IOURequestStepCategory.tsx
    • src/pages/iou/request/step/IOURequestStepDestination.tsx
    • src/pages/iou/request/step/IOURequestStepScan/index.tsx
    • src/pages/iou/request/step/IOURequestStepScan/index.native.tsx
    • src/pages/iou/request/step/IOURequestStepOdometerImage/index.native.tsx

    PR 7: Settings & Remaining Pages (8 files)

    • src/pages/settings/Profile/ProfilePage.tsx
    • src/pages/settings/Wallet/WalletPage/index.tsx
    • src/pages/settings/Wallet/PersonalCardDetailsHeaderMenu.tsx
    • src/pages/settings/Security/TwoFactorAuth/CopyCodesPage.tsx
    • src/pages/settings/Subscription/SubscriptionPlan/SubscriptionPlanCard.tsx
    • src/pages/settings/Rules/ExpenseRulesPage.tsx
    • src/pages/ReimbursementAccount/NonUSD/BankInfo/subSteps/BankAccountDetails.tsx
    • src/pages/ReimbursementAccount/NonUSD/BankInfo/subSteps/Confirmation.tsx
    • src/pages/inbox/report/ListBoundaryLoader.tsx
    • src/pages/home/ForYouSection/index.tsx
    • src/pages/domain/Saml/SamlConfigurationDetailsSectionContent.tsx

    Notes:

    • 8 files already have reasonAttributes properly wired (from PR #82927 and others) and are excluded from this split
    • FullscreenLoadingIndicator.tsx (PR 1) already accepts reasonAttributes and calls useSkeletonSpan, but doesn't forward it to the inner <ActivityIndicator> — this should be fixed
    • PRs are grouped by domain so reviewers can focus on one area at a time, and each PR is independently mergeable
  4. melvin-bot commented on Mar 6, 2026

    @melvin-bot

    @sosek108 Whoops! This issue is 2 days overdue. Let's get this updated quick!

  5. melvin-bot commented on Mar 9, 2026

    @melvin-bot

    @sosek108 6 days overdue. This is scarier than being forced to listen to Vogon poetry!

  6. melvin-bot commented on Mar 11, 2026

    @melvin-bot

    @sosek108 8 days overdue is a lot. Should this be a Weekly issue? If so, feel free to change it!

  7. melvin-bot commented on Mar 11, 2026

    @melvin-bot

    @sosek108 8 days overdue is a lot. Should this be a Weekly issue? If so, feel free to change it!

  8. 30 remaining items

  9. garrettmknight commented on Mar 25, 2026

    @garrettmknight
    Contributor

    $75 approved for @huult

  10. mallenexpensify commented on Mar 26, 2026

    @mallenexpensify
    Contributor

    Payment Summary

    @mkhutornyi due $75 via NewDot
    @hungvu193 due $225 via NewDot
    @ShridharGoel due $150 via NewDot
    @ChavdaSachin paid $75 via Upwork
    @Pujan92 due $75 via NewDot
    @jayeshmangwani due $150 via NewDot
    @hoangzinh due $150 via NewDot

    @situchan , paid ($150 total for the two), summary updated above

    @ChavdaSachin can you please accept the job below? Please reply here and tag me once you have.
    https://www.upwork.com/jobs/~022036210496494018237

  11. mallenexpensify commented on Mar 26, 2026

    @mallenexpensify
    Contributor

    @ChavdaSachin paid, summary updated above. Thx y'all. Closing. If a payment got missed, ping me in Slack with a link to this issue.

  12. twisterdotcom commented on Mar 26, 2026

    @twisterdotcom
    Contributor

    @hungvu193 has submitted payment for this report on ND here.

    SO: https://stackoverflowteams.com/c/expensify/questions/7582

    Zapier Logs Run ID: 00040eee-ca66-a9d9-c7f0-e6c158fd9794
  13. mallenexpensify commented on Mar 27, 2026

    @mallenexpensify
    Contributor

    @hoangzinh paid, summary updated above. Sorry I missed ya.

  14. trjExpensify commented on Mar 30, 2026

    @trjExpensify
    Contributor

    approved $150 for @jayeshmangwani

  15. garrettmknight commented on Mar 31, 2026

    @garrettmknight
    Contributor

    $150 approved for @hoangzinh

  16. quinthar commented on Apr 4, 2026

    @quinthar
    Contributor

    Approved $75 to @mkhutornyi

  17. JmillsExpensify commented on Apr 6, 2026

    @JmillsExpensify
    Contributor

    $150 approved for @ShridharGoel

  18. mananjadhav commented on Apr 13, 2026

    @mananjadhav
    Collaborator

    @mallenexpensify I missed commenting here.

    I reviewed 2 PRs here #84721 and #84398

  19. mallenexpensify commented on Apr 13, 2026

    @mallenexpensify
    Contributor

    Payment Summary

    Contributor+: @mananjadhav due $225 via NewDot

  20. mananjadhav commented on Apr 13, 2026

    @mananjadhav
    Collaborator

    @mallenexpensify Missed this one too #83684

  21. mallenexpensify commented on Apr 13, 2026

    @mallenexpensify
    Contributor

    Updated payment summary @mananjadhav

  22. mananjadhav commented on Apr 13, 2026

    @mananjadhav
    Collaborator
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions