Extract page spinner#1727
Conversation
There was a problem hiding this comment.
Pull request overview
This PR extracts a reusable FullPageSpinner component to eliminate code duplication across the application. The component encapsulates the full-page loading spinner pattern that was previously repeated inline in multiple locations.
Key changes:
- Created a new
FullPageSpinnercomponent with configurable size - Replaced five instances of inline full-page spinner implementations with the new component
- Reorganized imports to maintain alphabetical ordering
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| packages/react-ui/src/app/common/components/full-page-spinner.tsx | New reusable component that wraps LoadingSpinner with full-page layout styling |
| packages/react-ui/src/app/app-bootstrap.tsx | Replaced inline spinner with FullPageSpinner component |
| packages/react-ui/src/app/common/guards/allow-logged-in-user-only-guard.tsx | Replaced inline spinner in Suspense fallback with FullPageSpinner component |
| packages/react-ui/src/app/common/guards/intial-data-guard.tsx | Replaced two inline spinner instances with FullPageSpinner component |
| packages/react-ui/src/app/routes/flows/id/index.tsx | Replaced inline spinner with FullPageSpinner component and alphabetized imports |
| packages/react-ui/src/app/routes/runs/id/index.tsx | Replaced inline spinner with FullPageSpinner component |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Greptile OverviewGreptile SummaryExtracted a reusable
Confidence Score: 5/5
Important Files ChangedFile Analysis
Sequence DiagramsequenceDiagram
participant User
participant AppBootstrap
participant Guards as Guards (Auth & Data)
participant Routes as Route Pages
participant FullPageSpinner
participant LoadingSpinner
User->>AppBootstrap: Access application
AppBootstrap->>AppBootstrap: Initialize flags & internal setup
AppBootstrap->>FullPageSpinner: Render while bootstrapping
FullPageSpinner->>LoadingSpinner: Display spinner
AppBootstrap->>Guards: Bootstrap complete, pass to guards
Guards->>Guards: Setup interceptors & auth checks
Guards->>FullPageSpinner: Render while loading
FullPageSpinner->>LoadingSpinner: Display spinner
Guards->>Routes: Guards pass, route to page
Routes->>Routes: Fetch flow/run data
Routes->>FullPageSpinner: Render while loading
FullPageSpinner->>LoadingSpinner: Display spinner
Routes->>User: Display content when ready
|



Part of OPS-3144