From 41a938105d3694067ae217f9faad52f738d41c2d Mon Sep 17 00:00:00 2001 From: Leo dev Date: Mon, 2 Feb 2026 00:19:38 +0100 Subject: [PATCH] Leaderboards --- src/app/leaderboards/page.tsx | 158 ++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 src/app/leaderboards/page.tsx diff --git a/src/app/leaderboards/page.tsx b/src/app/leaderboards/page.tsx new file mode 100644 index 0000000..8eada98 --- /dev/null +++ b/src/app/leaderboards/page.tsx @@ -0,0 +1,158 @@ +"use client"; + +import { Trophy, Calendar, Globe, TrendingUp } from "lucide-react"; +import LeaderboardRow from "@/components/app/LeaderboardRow"; +import { useState } from "react"; + +const Leaderboards = () => { + const [activeTab, setActiveTab] = useState<"global" | "weekly">("global"); + + const globalLeaderboard = [ + { rank: 1, username: "speedmaster_x", pb: "2:34.21", runsCount: 2341, category: "Any%" }, + { rank: 2, username: "algo_ninja", pb: "2:38.54", runsCount: 1876, category: "Any%" }, + { rank: 3, username: "clockwork", pb: "2:41.02", runsCount: 3102, category: "Any%" }, + { rank: 4, username: "fastfingers99", pb: "2:45.33", runsCount: 987, category: "Any%" }, + { rank: 5, username: "recursion_queen", pb: "2:47.89", runsCount: 1543, category: "Any%" }, + { rank: 6, username: "bitshifter", pb: "2:52.11", runsCount: 2109, category: "Any%" }, + { rank: 7, username: "nullpointer", pb: "2:54.67", runsCount: 876, category: "Any%" }, + { rank: 8, username: "stackattack", pb: "2:58.23", runsCount: 1234, category: "Any%" }, + { rank: 9, username: "looplegend", pb: "3:01.45", runsCount: 654, category: "Any%" }, + { rank: 10, username: "coderunner", pb: "3:05.78", runsCount: 1098, category: "Any%" }, + ]; + + const weeklyLeaderboard = [ + { rank: 1, username: "weekly_warrior", pb: "2:51.33", runsCount: 156, category: "Any%" }, + { rank: 2, username: "speedmaster_x", pb: "2:53.12", runsCount: 89, category: "Any%" }, + { rank: 3, username: "newbie_grinder", pb: "2:58.67", runsCount: 234, category: "Any%" }, + { rank: 4, username: "algo_ninja", pb: "3:02.45", runsCount: 67, category: "Any%" }, + { rank: 5, username: "fresh_runner", pb: "3:05.89", runsCount: 45, category: "Any%" }, + { rank: 6, username: "practice_makes", pb: "3:08.12", runsCount: 112, category: "Any%" }, + { rank: 7, username: "splitmaster", pb: "3:12.34", runsCount: 78, category: "Any%" }, + { rank: 8, username: "grindtime", pb: "3:15.56", runsCount: 92, category: "Any%" }, + { rank: 9, username: "pb_hunter", pb: "3:18.90", runsCount: 56, category: "Any%" }, + { rank: 10, username: "reset_king", pb: "3:22.11", runsCount: 187, category: "Any%" }, + ]; + + const categories = ["Any%", "100%", "Easy Only", "No DP", "Blind"]; + + return ( +
+
+ {/* Header */} +
+

Leaderboards

+

The fastest runners in the game. Will you claim a spot?

+
+ + {/* Stats Row */} +
+
+ +

12,453

+

Total Runners

+
+
+ +

2:34.21

+

World Record

+
+
+ +

847K

+

Runs This Week

+
+
+ +

5d 12h

+

Until Reset

+
+
+ + {/* Tabs and Filters */} +
+ {/* Global/Weekly Toggle */} +
+ + +
+ + {/* Category Filter */} +
+ {categories.map((cat, i) => ( + + ))} +
+
+ + {/* Leaderboard Table */} +
+ + + + + + + + + + + + {(activeTab === "global" ? globalLeaderboard : weeklyLeaderboard).map((entry, i) => ( + + ))} + +
RankRunnerPBRunsCategory
+
+ + {/* Pagination */} +
+ + {[1, 2, 3, '...', 50].map((page, i) => ( + + ))} + +
+
+
+ ); +}; + +export default Leaderboards;