Problem Statement
Is your feature request related to a problem?
The PR Analytics widget shows no loading state while data is being fetched — the area is blank or flashes, which feels broken compared to the polished skeleton on the commit activity chart.
Describe the solution you'd like
Add a skeleton placeholder to the PR Analytics widget that displays while PR data loads, consistent with the existing loading UX across the dashboard.
Proposed Solution
Proposed Solution
- Create or reuse a
SkeletonCard component for the widget's stat tiles
- Apply skeleton during the
isLoading / isPending state of the PR metrics API call
- Match the visual style of existing skeleton loaders in the codebase (same height, border-radius, animation)
- Skeleton should cover: stat tiles, widget title area, and any chart/graph inside the widget
Implementation Notes
- Check
src/components/ for any existing Skeleton or SkeletonCard — reuse if present
- Use shadcn/ui
Skeleton component (from "@/components/ui/skeleton") if no custom one exists
- Skeleton count should match the number of stat tiles rendered in the widget
Why this helps
Consistent loading states make the dashboard feel polished and production-ready, and reduce perceived load time.
Checklist
Feature Area
Dashboard
Alternatives Considered
No response
Acceptance Criteria
Additional Context
No response
Problem Statement
Is your feature request related to a problem?
The PR Analytics widget shows no loading state while data is being fetched — the area is blank or flashes, which feels broken compared to the polished skeleton on the commit activity chart.
Describe the solution you'd like
Add a skeleton placeholder to the PR Analytics widget that displays while PR data loads, consistent with the existing loading UX across the dashboard.
Proposed Solution
Proposed Solution
SkeletonCardcomponent for the widget's stat tilesisLoading/isPendingstate of the PR metrics API callImplementation Notes
src/components/for any existingSkeletonorSkeletonCard— reuse if presentSkeletoncomponent (from "@/components/ui/skeleton") if no custom one existsWhy this helps
Consistent loading states make the dashboard feel polished and production-ready, and reduce perceived load time.
Checklist
Feature Area
Dashboard
Alternatives Considered
No response
Acceptance Criteria
Additional Context
No response