Skip to content

[$125] Use valid loading indicator in WorkspaceWorkflowsApprovalsCreatePage.tsx #85395

@mateuuszzzzz

Description

@mateuuszzzzz

Details

As part of the loading indicator standardization, we are preparing to enable shouldUseGoBackButton by default in FullscreenLoadingIndicator. Before that, we need to migrate components where FullscreenLoadingIndicator is used alongside visible navigation to use ActivityIndicator instead, otherwise users would see two back controls (the header back button AND the Go Back button from the loader).

WorkspaceWorkflowsApprovalsCreatePage is a workspace approval workflow creation screen shown as a modal. It has a HeaderWithBackButton with title "Confirm" and uses FullscreenLoadingIndicator when approvalWorkflow is not yet loaded (inside FullPageNotFoundView). The page is wrapped with withPolicyAndFullscreenLoading and rendered at WORKSPACE.WORKFLOWS_APPROVALS_NEW. The loading state appears below the header while the approval workflow data is fetched from Onyx.

Solution

Replace FullscreenLoadingIndicator with ActivityIndicator in src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsCreatePage.tsx. The replacement must be an ActivityIndicator wrapped in a parent View that provides the same layout and background styling as FullscreenLoadingIndicator. The loading state must be pixel-perfect identical after the change. Same background color, same opacity, same centered large spinner in the content area below the header.

Before making any changes, read the FullscreenLoadingIndicator component source to understand what styles it applies internally, and make sure the replacement reproduces them exactly. ActivityIndicator is a raw spinner with no layout or background styling, so it should not be used on its own as a fullscreen loading state. The codebase convention is to wrap it in a parent View that provides the layout and background styling.

Parent issue: #69850

Issue OwnerCurrent Issue Owner: @mateuuszzzzz

Metadata

Metadata

Labels

EngineeringInternalRequires API changes or must be handled by Expensify staffMonthlyKSv2Task

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions