Skip to content

feat(dashboard): add reusable empty state components for widgets#3235

Open
desireddymohithreddy0925 wants to merge 17 commits into
Priyanshu-byte-coder:mainfrom
desireddymohithreddy0925:feature/empty-state-widgets
Open

feat(dashboard): add reusable empty state components for widgets#3235
desireddymohithreddy0925 wants to merge 17 commits into
Priyanshu-byte-coder:mainfrom
desireddymohithreddy0925:feature/empty-state-widgets

Conversation

@desireddymohithreddy0925

Copy link
Copy Markdown
Contributor

Summary

Replaces ad-hoc blank state messages across various dashboard widgets with the unified EmptyState component for a more consistent, informative, and engaging user experience.

Closes #2646

Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • ✨ New feature (non-breaking change that adds functionality)
  • 💥 Breaking change (fix or feature that changes existing functionality)
  • 📝 Documentation update
  • 🎨 Code style update (formatting, renaming)
  • ♻️ Refactoring (no functional changes)
  • 🧪 Testing
  • 🏗️ Build / CI/CD / Infrastructure

Description

Several dashboard widgets previously displayed blank sections or minimal placeholder text when no data was available. This update standardizes these edge cases using the reusable EmptyState component.

Changes made:

  • EmptyState.tsx: Added an onAction prop to support action buttons alongside the existing actionHref link support.
  • TopRepos.tsx (Repositories Widget): Implemented EmptyState for when a user has no pinned or top repositories found.
  • PRReviewTrendChart.tsx (PR Analytics Widget): Replaced the standard border box empty state with EmptyState and an action to view their GitHub profile.
  • RecentActivity.tsx (Activity Widget): Updated to use EmptyState with a direct onAction button that refreshes the activity feed.
  • Note: The Goals Tracker and Leaderboard widgets were already using EmptyState effectively.

Testing

  • Tested rendering widgets on an account with zero data.
  • Verified actionHref links point correctly.
  • Verified onAction correctly fires reload functions on empty states.
  • Executed local static analysis (pnpm typecheck) seamlessly without type errors.

@github-actions github-actions Bot added type:bug GSSoC type bonus: bug fix type:feature GSSoC type bonus: new feature type:testing GSSoC type bonus: tests (+10 pts) type:design GSSoC type bonus: UI/design (+10 pts) type:performance GSSoC type bonus: performance (+15 pts) gssoc26 GSSoC 2026 contribution labels Jul 25, 2026
@github-actions

Copy link
Copy Markdown

GSSoC Label Checklist 🏷️

@Priyanshu-byte-coder — please apply the appropriate labels before merging:

Difficulty (pick one):

  • level:beginner — 20 pts
  • level:intermediate — 35 pts
  • level:advanced — 55 pts
  • level:critical — 80 pts

Quality (optional):

  • quality:clean — ×1.2 multiplier
  • quality:exceptional — ×1.5 multiplier

Validation (required to score):

  • gssoc:approved — counts for points
  • gssoc:invalid / gssoc:spam / gssoc:ai-slop — does not score

Type labels (type:*) are auto-detected from files and title. Review and adjust if needed.
Points formula: (difficulty × quality_multiplier) + type_bonus

@desireddymohithreddy0925 desireddymohithreddy0925 changed the title Feature/empty state widgets feat(dashboard): add reusable empty state components for widgets Jul 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc26 GSSoC 2026 contribution type:bug GSSoC type bonus: bug fix type:design GSSoC type bonus: UI/design (+10 pts) type:feature GSSoC type bonus: new feature type:performance GSSoC type bonus: performance (+15 pts) type:testing GSSoC type bonus: tests (+10 pts)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] Add Reusable Empty State Components for Dashboard Widgets

1 participant