{title}
@@ -27,24 +30,25 @@ export function BountyCard({ title, reward, tags, difficulty, progress }: BountyReward
+diff --git a/src/app/leaderboard/page.tsx b/src/app/leaderboard/page.tsx index e8e77c0..bf81a30 100644 --- a/src/app/leaderboard/page.tsx +++ b/src/app/leaderboard/page.tsx @@ -1,7 +1,26 @@ import { mockLeaderboard } from "@/data/mock-leaderboard"; export default function LeaderboardPage() { - const sorted = [...mockLeaderboard].sort((a, b) => b.earned - a.earned); + const sorted = [...mockLeaderboard].sort((a, b) => { + if (b.earned !== a.earned) return b.earned - a.earned; + if (b.bounties !== a.bounties) return b.bounties - a.bounties; + return a.name.localeCompare(b.name); + }); + + const getRank = (index: number) => { + if (index === 0) return 1; + const current = sorted[index]; + const prev = sorted[index - 1]; + + if ( + current.earned === prev.earned && + current.bounties === prev.bounties + ) { + return getRank(index - 1); + } + + return index + 1; + }; return (
Reward
+