feat(dashboard): add loading skeletons for widgets#2953
Conversation
GSSoC Label Checklist 🏷️@Priyanshu-byte-coder — please apply the appropriate labels before merging: Difficulty (pick one):
Quality (optional):
Validation (required to score):
|
|
Recreated this PR from a clean branch based on latest upstream/main because the previous branch accumulated heavy merge conflicts during rebase. This PR contains the same feature changes with clean commit history. |
|
Hi — new UI components/features are currently on hold while we focus on code quality (see discussion #2651). Loading skeletons are a nice addition, but please hold this until the quality sprint wraps up. PRs for tests, refactoring, bug fixes, and docs are welcome in the meantime. |
|
New feature/UI PRs are on hold during the code-quality sprint — see discussion #2651. We'll revisit this after the sprint; meanwhile tests, refactors, and bug-fix PRs are very welcome. |
|
Unified widget skeletons just landed via #2639 (shared WidgetSkeleton + SkeletonBlock), which covers this. Closing — thanks for the work here, and please build on the new shared component for any remaining widgets. |
Summary
Adds loading skeleton states for dashboard widgets to improve perceived performance and reduce layout shifts while dashboard data is loading.
Closes #1774
Type of Change
What Changed
ContributionGraph.tsxPRMetrics.tsx,TopRepos.tsx,StreakTracker.tsx, andGoalTracker.tsxHow to Test
pnpm devExpected result:
Dashboard widgets should display skeleton placeholders during loading and smoothly transition to actual content once data is fetched.
Screenshots / Recordings
| Before


| After
Checklist
console.log, debug code, or commented-out blocksnpm run lintpasses locallynpm run type-check)Accessibility (UI changes only)
Additional Context
This PR was recreated from a clean branch based on the latest upstream
mainbecause the previous branch accumulated merge conflicts during rebase. The functionality remains unchanged.