Skip to content

Commit 68d0172

Browse files
Merge pull request #3271 from ava-labs/badges-comment-out-point-system
comment out point system for badges requirements in Staging_badges + comment out hackathon logic + change to achievements board in ui
2 parents d193687 + e710ae3 commit 68d0172

File tree

7 files changed

+84
-68
lines changed

7 files changed

+84
-68
lines changed

components/login/user-button/UserButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ export function UserButton() {
8080
<Link href='/profile'>Profile</Link>
8181
</DropdownMenuItem>
8282
<DropdownMenuItem asChild className='cursor-pointer'>
83-
<Link href='/profile/rewards-board'>Reward Board</Link>
83+
<Link href='/profile/rewards-board'>Achievements Board</Link>
8484
</DropdownMenuItem>
8585

8686
<DropdownMenuItem

components/profile/reward-board/component/requirement-panel.tsx

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@ export function RequirementsPanel({
1616
requirements?: Requirement[];
1717
title?: string;
1818
}) {
19-
const total = requirements.reduce(
20-
(acc, r) => acc + Number(r.points ?? 0),
21-
0
22-
);
19+
// COMMENTED OUT: Points feature disabled
20+
// const total = requirements.reduce(
21+
// (acc, r) => acc + Number(r.points ?? 0),
22+
// 0
23+
// );
2324

2425
return (
2526
<div >
@@ -54,19 +55,22 @@ export function RequirementsPanel({
5455
<Check className="w-10 h-10 text-green-500 mr-2" />
5556
)}
5657
<span>
57-
{requirement.description}:{" "}
58+
{requirement.description}
59+
{/* COMMENTED OUT: Points feature disabled */}
60+
{/* :{" "}
5861
<span className="font-bold">
5962
{Number(requirement.points ?? 0)} points
60-
</span>
63+
</span> */}
6164
</span>
6265
</span>
6366
</li>
6467
))}
6568
</ul>
6669

67-
<Separator className="bg-zinc-700 my-2" />
70+
{/* COMMENTED OUT: Points feature disabled */}
71+
{/* <Separator className="bg-zinc-700 my-2" />
6872
69-
<span className="font-bold">{total} points</span>
73+
<span className="font-bold">{total} points</span> */}
7074
</div>
7175
</CardContent>
7276
</Card>

components/profile/reward-board/component/reward-board.tsx

Lines changed: 33 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,20 @@ export default async function RewardBoard() {
1616
}
1717
const userBadges: UserBadge[] = await getRewardBoard(user_id);
1818
const badges = await getAllBadges();
19+
1920
const academyBadges = badges.filter((badge) => badge.category == "academy")?.sort((a, b) => a.id.localeCompare(b.id));
20-
const hackathonBadges: Badge[] = badges.filter((badge) => badge.category == "hackathon")?.sort((a, b) => a.id.localeCompare(b.id));
21-
const totalPoints = userBadges.reduce((acc, userBadge) => acc + userBadge.points, 0);
22-
const hackathonBadgesUnlocked = hackathonBadges.map((badge) => {
23-
const userBadge = userBadges.find((userBadge) => userBadge.badge_id == badge.id);
24-
return {
25-
...badge,
26-
is_unlocked: !!userBadge,
27-
requirements: userBadge?.requirements || badge.requirements,
28-
};
29-
});
21+
// COMMENTED OUT: Hackathon badges feature disabled
22+
// const hackathonBadges: Badge[] = badges.filter((badge) => badge.category == "hackathon")?.sort((a, b) => a.id.localeCompare(b.id));
23+
// COMMENTED OUT: Points feature disabled
24+
// const totalPoints = userBadges.reduce((acc, userBadge) => acc + userBadge.points, 0);
25+
// const hackathonBadgesUnlocked = hackathonBadges.map((badge) => {
26+
// const userBadge = userBadges.find((userBadge) => userBadge.badge_id == badge.id);
27+
// return {
28+
// ...badge,
29+
// is_unlocked: !!userBadge,
30+
// requirements: userBadge?.requirements || badge.requirements,
31+
// };
32+
// });
3033

3134
const academyBadgesUnlocked = academyBadges.map((badge) => {
3235
const userBadge = userBadges.find((userBadge) => userBadge.badge_id == badge.id);
@@ -35,21 +38,23 @@ export default async function RewardBoard() {
3538
is_unlocked: !!userBadge,
3639
requirements: userBadge?.requirements || badge.requirements,
3740
};
38-
}).sort(element => element.is_unlocked ? -1 : 1);
39-
const rewards = hackathonBadgesUnlocked.map((reward) => (
40-
<RewardCard
41-
key={reward.name}
42-
icon={reward.image_path}
43-
name={reward.name}
44-
description={reward.description}
45-
category={reward.category}
46-
is_unlocked={reward.is_unlocked}
47-
image={reward.image_path}
48-
requirements={reward.requirements}
49-
id={reward.id}
5041

51-
/>
52-
));
42+
}).sort(element=>element.is_unlocked ? -1 : 1);
43+
// COMMENTED OUT: Hackathon badges feature disabled
44+
// const rewards = hackathonBadgesUnlocked.map((reward) => (
45+
// <RewardCard
46+
// key={reward.name}
47+
// icon={reward.image_path}
48+
// name={reward.name}
49+
// description={reward.description}
50+
// category={reward.category}
51+
// is_unlocked={reward.is_unlocked}
52+
// image={reward.image_path}
53+
// requirements={reward.requirements}
54+
// id={reward.id}
55+
// />
56+
// ));
57+
5358
const academyRewards = academyBadgesUnlocked.map((reward) => (
5459

5560
<RewardCard
@@ -68,14 +73,14 @@ export default async function RewardBoard() {
6873

6974
return (
7075
<div className="container mx-auto px-4 sm:px-6 lg:px-8 py-4 sm:py-6 lg:py-8">
71-
<div>
72-
73-
76+
{/* COMMENTED OUT: Hackathon badges feature disabled */}
77+
{/* <div>
7478
<div className="flex flex-col gap-4 sm:gap-6 mb-2 sm:mb-4">
7579
<div className="flex justify-between items-center">
7680
<h1 className="text-2xl sm:text-3xl lg:text-4xl font-bold text-gray-900 dark:text-white">
7781
Hackathon Badges
7882
</h1>
83+
COMMENTED OUT: Points feature disabled
7984
<div className="px-4 py-2 border rounded border-red-500 ">
8085
<h2 className="text-lg sm:text-xl font-semibold text-gray-900 dark:text-white">
8186
Total Points: {totalPoints}
@@ -96,7 +101,7 @@ export default async function RewardBoard() {
96101
{rewards}
97102
</div>
98103
)}
99-
</div>
104+
</div> */}
100105

101106
<div className="flex flex-col gap-4 sm:gap-6 mb-2 mt-3 ">
102107
<h1 className="text-2xl sm:text-3xl lg:text-4xl font-bold text-gray-900 dark:text-white">

components/quizzes/components/BadgeNotification.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,9 @@ export const BadgeNotification = ({
9494
{badges[0]?.name}
9595
</h3>
9696
<p className="text-base dark:text-zinc-400 text-gray-500 text-center mt-1">
97-
{badges[0]?.completed_requirement.description} : <span className="font-bold">{badges[0]?.completed_requirement.points} points</span>
97+
{badges[0]?.completed_requirement.description}
98+
{/* COMMENTED OUT: Points feature disabled */}
99+
{/* : <span className="font-bold">{badges[0]?.completed_requirement.points} points</span> */}
98100
</p>
99101
</div>
100102
) : Array.isArray(badges) && badges.length > 1 ? (
@@ -116,7 +118,9 @@ export const BadgeNotification = ({
116118
{badge.name}
117119
</p>
118120
<p className="text-base dark:text-zinc-400 text-gray-500 text-center mt-1">
119-
{badge.completed_requirement.description} : <span className="font-bold">{badge.completed_requirement.points} points</span>
121+
{badge.completed_requirement.description}
122+
{/* COMMENTED OUT: Points feature disabled */}
123+
{/* : <span className="font-bold">{badge.completed_requirement.points} points</span> */}
120124
</p>
121125
</div>
122126
))}

components/showcase/assign-badge.tsx

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,19 @@ export const AssignBadge = ({
2626
const [isLoading, setIsLoading] = useState(false);
2727
useEffect(() => {
2828
const fetchBadges = async () => {
29-
const response = await axios.get("/api/badge/get-all");
30-
const filteredBadges = response.data.filter(
31-
(badge: Badge) => badge.category == "hackathon"
32-
);
33-
setOptionsWithLabel(
34-
filteredBadges.map((option: Badge) => ({
35-
label: option.name,
36-
value: option.id,
37-
}))
38-
);
29+
// COMMENTED OUT: Hackathon badges feature disabled
30+
// const response = await axios.get("/api/badge/get-all");
31+
// const filteredBadges = response.data.filter(
32+
// (badge: Badge) => badge.category == "hackathon"
33+
// );
34+
// setOptionsWithLabel(
35+
// filteredBadges.map((option: Badge) => ({
36+
// label: option.name,
37+
// value: option.id,
38+
// }))
39+
// );
40+
// Return empty array since hackathon badges are disabled
41+
setOptionsWithLabel([]);
3942
};
4043
fetchBadges();
4144
}, []);

server/services/rewardBoard.ts

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export function parseBadgeMetadata(metadata: JsonValue): Requirement | null {
99
course_id: metadataObject.course_id || undefined,
1010
hackathon: metadataObject.hackathon || null,
1111
type: metadataObject.type || undefined,
12-
points: metadataObject.points || undefined,
12+
// points: metadataObject.points || undefined, // COMMENTED OUT: Points feature disabled
1313
description: metadataObject.description || undefined,
1414
id: metadataObject.id || "",
1515
unlocked: false,
@@ -51,30 +51,30 @@ export async function getRewardBoard(user_id: string): Promise<UserBadge[]> {
5151
awarded_by: userBadge.awarded_by,
5252
name: userBadge.badge.name,
5353
description: userBadge.badge.description,
54-
points: 0,
54+
// points: 0, // COMMENTED OUT: Points calculation disabled
5555
image_path: userBadge.badge.image_path,
5656
category: userBadge.badge.category,
5757
evidence: userBadge.evidence,
5858
requirements: parsedRequirements,
5959
};
6060
});
6161

62-
63-
badges.forEach((badge) => {
64-
if (Array.isArray(badge.evidence)) {
65-
badge.points = badge.evidence.reduce(
66-
(acc: number, requirement: any) => {
67-
if (requirement && typeof requirement.points !== "undefined" && requirement.points !== null) {
68-
return acc + parseInt(requirement.points.toString(), 10);
69-
}
70-
return acc;
71-
},
72-
0
73-
);
74-
} else {
75-
badge.points = 0;
76-
}
77-
});
62+
// COMMENTED OUT: Points calculation disabled
63+
// badges.forEach((badge) => {
64+
// if (Array.isArray(badge.evidence)) {
65+
// badge.points = badge.evidence.reduce(
66+
// (acc: number, requirement: any) => {
67+
// if (requirement && typeof requirement.points !== "undefined" && requirement.points !== null) {
68+
// return acc + parseInt(requirement.points.toString(), 10);
69+
// }
70+
// return acc;
71+
// },
72+
// 0
73+
// );
74+
// } else {
75+
// badge.points = 0;
76+
// }
77+
// });
7878

7979
return badges as unknown as UserBadge[];
8080
}

types/badge.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export type UserBadge = {
3333
awarded_by: string | null
3434
name: string
3535
description: string
36-
points: number
36+
// points: number // COMMENTED OUT: Points feature disabled
3737
image_path: string
3838
category: string
3939
requirements: Requirement[] | null

0 commit comments

Comments
 (0)