Skip to content

Leaderboard tabs don't actually refetch or filter anything #389

Description

@jakharmonika364

What happened?

The leaderboard page has Global, Monthly, Organization, and Friends tabs. Clicking between them looks like it should change what you see, but handleTabChange in src/app/(app)/leaderboard/leaderboard-content.tsx (line 78) only calls setActiveTab(tab), it never refetches data or touches the URL.

getLeaderboard in src/app/actions/leaderboard.ts already supports global, cohort, language, and tag scopes server side, but the page only ever passes scope=global and never reads the active tab back out into a query param. So switching tabs just changes which button looks selected while the same global top 100 list stays on screen underneath it.

Steps to Reproduce

  1. Open the leaderboard
  2. Click "Monthly", "Organization", or "Friends"
  3. The list doesn't change

Expected Behavior

Clicking a tab should update the URL (or otherwise trigger a refetch) and show data scoped to that tab.

Where does this occur?

Contributor Dashboard (leaderboard)

Additional Context

Worth noting "Friends" isn't even a supported scope server side yet, only global, cohort, language, tag exist in getLeaderboard. That part may need backend work too, not just wiring up the click handler.

Metadata

Metadata

Assignees

Labels

GSSOC26GirlScript Summer of Code 2026SSoC26bugSomething isn't workingfrontendFrontend / UI relatedlevel:intermediateIntermediate level difficultynsoc26

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions