Skip to content

Fix/contributor repo page#91

Open
rahul-vyas-dev wants to merge 9 commits into
AOSSIE-Org:mainfrom
rahul-vyas-dev:fix/contributor-repo-page
Open

Fix/contributor repo page#91
rahul-vyas-dev wants to merge 9 commits into
AOSSIE-Org:mainfrom
rahul-vyas-dev:fix/contributor-repo-page

Conversation

@rahul-vyas-dev

@rahul-vyas-dev rahul-vyas-dev commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Screenshots/Recordings:

Before:
https://1drv.ms/v/c/2b55451e453f4443/IQBifYNkOtKYRr7BR1o2bT1BAaSbFkU_Q2DBFY3_a-4s5Co?e=gdRWQQ

After:
https://1drv.ms/v/c/2b55451e453f4443/IQD740EsPsqBQZYyi9LyPAZ5AWNia-4n4UJVasbhhWqBfoo?e=h0q1xY

Additional Notes:

Summary

This PR includes multiple UI/UX improvements and fixes across the Home, Overview, Repository, Settings, and Contributor pages. And the core work like, added a formula to calculate top repo and show analytics for top repos.

Changes Made

Home Page

  • Fixed the Settings and Theme Toggle button sizing.

  • Fix theme in light mode.

  • Improved footer navigation:

    • Documentation now redirects correctly.
    • API Status now navigates to the Settings page.

Overview Page

  • Improved info card interaction behavior (hover open/close).
  • Improved org's logo, to show properly.

Repository Page

  • Removed the grid view option (as per Bhavik's suggestion).
  • Improved info card interaction behavior (hover open/close).
  • Updated the default language filter label from ALL to a more descriptive value.
  • Merged and refined repository analytics presentation based on review feedback (Now a merged section presents both the col, better UX).

Contributor Page

  • Added direct navigation to contributor GitHub profiles.
  • Updated the info icon.

Network Page

  • By adding "getTopRepositories" function in "src/services/analytics.js", top repo and calculated and all the analysis for the "top repo" takes place.

Additional Notes

  • Added general UI refinements and consistency improvements across affected pages.
  • Performed validation to ensure optional data does not leave empty UI space when unavailable.

Checklist

  • My code follows the project's code style and conventions
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings or errors
  • I have joined the Discord server and I will share a link to this PR with the project maintainers there
  • I have read the Contributing Guidelines

⚠️ AI Notice - Important!

We encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact.

Summary by CodeRabbit

  • New Features

    • Added a smarter “top repositories” ranking so multi-organization views surface the most relevant repos first.
    • Repository names now open directly on GitHub from the repositories and contributors views.
  • Bug Fixes

    • Updated totals and percentages to reflect the full repository count more accurately.
    • Improved contributor network and repository listings to show the full set of relevant items.
  • UI Improvements

    • Hover-based info tooltips replace click-to-toggle behavior in several panels.
    • Refreshed repository table layout and language filter labels for clearer browsing.

@github-actions github-actions Bot added no-issue-linked PR has no linked issue frontend Frontend changes javascript JavaScript/TypeScript changes size/L 201-500 lines changed external-contributor External contributor and removed size/L 201-500 lines changed labels Jun 25, 2026
@coderabbitai

coderabbitai Bot commented Jun 25, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@rahul-vyas-dev, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 35 minutes and 55 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: fe2a27e7-c64a-4f46-ad55-40f5fb4990a4

📥 Commits

Reviewing files that changed from the base of the PR and between e019717 and af334bc.

📒 Files selected for processing (2)
  • src/context/AppContext.jsx
  • src/services/analytics.js

Walkthrough

The PR adds score-based repository selection and total repository counting, then updates overview, contributors, repositories, and network pages to use the new data and hover-based tooltip interactions. It also changes the navbar background token.

Changes

App exploration and UI updates

Layer / File(s) Summary
Repository ranking and totals
src/services/analytics.js, src/context/AppContext.jsx
Adds getTopRepositories, computes totalRepo during exploration, filters each org’s repositories to the top 10, and exposes totalRepo through context.
Overview stats and tooltip
src/pages/OverviewPage.jsx
Uses totalRepo in overview stats, removes the single-org avatar border styling, and switches the health tooltip to hover-driven interaction with updated styling.
Contributor tooltips and profile links
src/pages/ContributorsPage.jsx
Replaces info icons, changes three tooltip triggers to hover, and wraps contributor avatars and logins in external GitHub links.
Repository table and filters
src/pages/RepositoriesPage.jsx
Renames the language sentinel, updates table columns, switches the header info button to hover, removes the view toggle, always renders the table, and links repository names externally.
Network contributor set
src/pages/NetworkPage.jsx
Uses the full contributor list when building the force graph instead of truncating to 40 entries.
Navbar background
src/components/Navbar.jsx
Changes the sticky nav background to the var(--bg) theme token.

Estimated review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

Typescript Lang

Suggested reviewers

  • Zahnentferner
  • bhavik-mangla

Poem

A bunny hopped through code so bright,
With top repos ranked just right.
Hover tooltips twinkled near,
And GitHub links hopped far and clear. 🐇

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and matches the main scope of the changes, especially the contributor and repository page fixes.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added size/L 201-500 lines changed PR has merge conflicts and removed size/L 201-500 lines changed labels Jun 25, 2026
@github-actions

Copy link
Copy Markdown

⚠️ This PR has merge conflicts.

Please resolve the merge conflicts before review.

Your PR will only be reviewed by a maintainer after all conflicts have been resolved.

📺 Watch this video to understand why conflicts occur and how to resolve them:
https://www.youtube.com/watch?v=Sqsz1-o7nXk

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/pages/ContributorsPage.jsx`:
- Around line 93-97: The info panels in ContributorsPage are currently driven
only by mouse hover, which makes them inaccessible to keyboard and touch users.
Update the tooltip/popup interaction around the busfactor/info icon so the same
open state is also controlled by onFocus/onBlur and a click toggle (or
equivalent controlled popover behavior), and apply the same fix to the other
matching info triggers in ContributorsPage so interaction is input-agnostic.

In `@src/pages/NetworkPage.jsx`:
- Line 31: The force graph in NetworkPage is currently built from all entries in
model.contributors, which can cause node/link explosion and slow rendering on
large orgs. Reintroduce an explicit contributor cap or adaptive sampling before
node and link generation in the topContribs flow, so the graph only uses a
bounded subset while preserving the existing graph-building logic.

In `@src/pages/OverviewPage.jsx`:
- Line 75: The org avatar image in OverviewPage.jsx uses an empty alt attribute,
so update the img rendering for orgs[0].avatar_url to provide meaningful
descriptive alt text using the org’s login or name. Keep the change localized to
the avatar img element in OverviewPage so the image conveys org identity to
assistive technologies.
- Around line 141-147: The tooltip trigger in OverviewPage.jsx is currently only
wired to mouse hover via the button’s onMouseEnter and onMouseLeave handlers, so
update this interaction to also work with keyboard and touch input. Adjust the
same trigger element and its open state logic so the info button can open on
focus and toggle on click/tap, and close appropriately on blur or outside
interaction while preserving the existing hover behavior.
- Line 109: The Active Repos stat in OverviewPage can render NaN when totalRepo
is zero, so guard the percentage calculation before doing the math. Update the
StatCard usage in OverviewPage to handle the zero-total case explicitly, and
keep the formatting logic tied to the activeRepos and totalRepo values so the
subtext always shows a valid percentage.

In `@src/pages/RepositoriesPage.jsx`:
- Around line 74-78: The info popover in RepositoriesPage is currently driven
only by mouse enter/leave on the trigger, which makes it unusable for
keyboard/touch and causes it to close when moving into the panel. Update the
open/close logic around the trigger and popover so the wrapper containing both
the AiOutlineInfoCircle button and the info panel handles enter/leave, and add
focus/click support to the same state used by setOpenInfo so users can open and
keep it accessible via keyboard and touch.

In `@src/services/analytics.js`:
- Around line 177-186: The repository scoring logic in the analytics ranking
path can return NaN when repo.pushed_at is missing/invalid or when
stargazers_count, forks_count, or watchers_count are undefined. Update the score
computation in the analytics service to sanitize these inputs before calculating
daysSinceLastPush and score, using safe numeric fallbacks and skipping the
activity bonus when pushed_at cannot be parsed. Keep the fix localized around
the score calculation so the repo sorting and top-repo selection always receive
a valid numeric score.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 846786bf-a41d-43c6-a66d-dc681d0dca59

📥 Commits

Reviewing files that changed from the base of the PR and between 5faf824 and e019717.

📒 Files selected for processing (7)
  • src/components/Navbar.jsx
  • src/context/AppContext.jsx
  • src/pages/ContributorsPage.jsx
  • src/pages/NetworkPage.jsx
  • src/pages/OverviewPage.jsx
  • src/pages/RepositoriesPage.jsx
  • src/services/analytics.js

Comment thread src/pages/ContributorsPage.jsx
Comment thread src/pages/NetworkPage.jsx
Comment thread src/pages/OverviewPage.jsx
Comment thread src/pages/OverviewPage.jsx
Comment thread src/pages/OverviewPage.jsx
Comment thread src/pages/RepositoriesPage.jsx
Comment thread src/services/analytics.js Outdated
@github-actions github-actions Bot added size/L 201-500 lines changed and removed PR has merge conflicts size/L 201-500 lines changed labels Jun 25, 2026
@github-actions github-actions Bot added size/L 201-500 lines changed and removed size/L 201-500 lines changed labels Jun 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

external-contributor External contributor frontend Frontend changes javascript JavaScript/TypeScript changes no-issue-linked PR has no linked issue size/L 201-500 lines changed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant