From 6c9ea55844d34aba0d41f99c4fea610c7fa71261 Mon Sep 17 00:00:00 2001 From: Starknet Dev Date: Wed, 31 Jan 2024 08:32:04 +0000 Subject: [PATCH] add campaign leaderboard --- .../app/components/leaderboard/ScoreTable.tsx | 39 ++++++++++++++++++- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/ui/src/app/components/leaderboard/ScoreTable.tsx b/ui/src/app/components/leaderboard/ScoreTable.tsx index 73e0925f4..a25a67043 100644 --- a/ui/src/app/components/leaderboard/ScoreTable.tsx +++ b/ui/src/app/components/leaderboard/ScoreTable.tsx @@ -17,14 +17,24 @@ const ScoreLeaderboardTable = ({ handleFetchProfileData, adventurers, }: ScoreLeaderboardTableProps) => { + const [showAllTime, setShowAllTime] = useState(false); const [currentPage, setCurrentPage] = useState(1); const setScreen = useUIStore((state) => state.setScreen); const setProfile = useUIStore((state) => state.setProfile); + const campaignAdventurers = adventurers.filter( + (score) => score.startBlock! > 942308 + ); + const displayScores = adventurers?.slice( (currentPage - 1) * itemsPerPage, currentPage * itemsPerPage ); + const campaignDisplayScores = campaignAdventurers?.slice( + (currentPage - 1) * itemsPerPage, + currentPage * itemsPerPage + ); + const scoreIds = adventurers?.map((score) => score.id ?? 0); const scoresData = useCustomQuery("topScoresQuery", getScoresInList, { @@ -42,8 +52,22 @@ const ScoreLeaderboardTable = ({ }; }); + const campaignMergedScores = campaignDisplayScores.map((item1) => { + const matchingItem2 = scoresData?.scores.find( + (item2: Score) => item2.adventurerId === item1.id + ); + + return { + ...item1, + ...matchingItem2, + }; + }); + const scoresWithLords = mergedScores; + const onMainnet = process.env.NEXT_PUBLIC_NETWORK === "mainnet"; + const onSepolia = process.env.NEXT_PUBLIC_NETWORK === "sepolia"; + const totalPages = Math.ceil(adventurers.length / itemsPerPage); let previousXp = -1; @@ -84,7 +108,15 @@ const ScoreLeaderboardTable = ({ return (
-
+
+ {!onMainnet && !onSepolia && ( + + )} {adventurers.length > 0 ? ( <>

@@ -101,7 +133,10 @@ const ScoreLeaderboardTable = ({ - {scoresWithLords.map((adventurer: any, index: number) => ( + {(!onMainnet && !onSepolia && showAllTime + ? scoresWithLords + : campaignMergedScores + ).map((adventurer: any, index: number) => (