diff --git a/components/profile/reward-board/component/reward-board.tsx b/components/profile/reward-board/component/reward-board.tsx index ea52b68840a..4629ec0ea60 100644 --- a/components/profile/reward-board/component/reward-board.tsx +++ b/components/profile/reward-board/component/reward-board.tsx @@ -18,26 +18,27 @@ export default async function RewardBoard() { const badges = await getAllBadges(); const academyBadges = badges.filter((badge) => badge.category == "academy")?.sort((a, b) => a.id.localeCompare(b.id)); - // COMMENTED OUT: Hackathon badges feature disabled - // const hackathonBadges: Badge[] = badges.filter((badge) => badge.category == "hackathon")?.sort((a, b) => a.id.localeCompare(b.id)); - // COMMENTED OUT: Points feature disabled + const hackathonBadges: Badge[] = badges.filter((badge) => badge.category == "hackathon")?.sort((a, b) => a.id.localeCompare(b.id)); // const totalPoints = userBadges.reduce((acc, userBadge) => acc + userBadge.points, 0); // const hackathonBadgesUnlocked = hackathonBadges.map((badge) => { // const userBadge = userBadges.find((userBadge) => userBadge.badge_id == badge.id); + + // const allRequirementsCompleted = userBadge?.requirements && userBadge.requirements.length > 0 && + // userBadge.requirements.every((requirement) => requirement.unlocked === true); // return { // ...badge, - // is_unlocked: !!userBadge, + // is_unlocked: !!allRequirementsCompleted, // requirements: userBadge?.requirements || badge.requirements, // }; // }); const academyBadgesUnlocked = academyBadges.map((badge) => { const userBadge = userBadges.find((userBadge) => userBadge.badge_id == badge.id); - // Only consider badge unlocked if status is approved (not pending) - const isUnlocked = userBadge?.status === BadgeAwardStatus.approved; + const allRequirementsCompleted = userBadge?.requirements && userBadge.requirements.length > 0 && + userBadge.requirements.every((requirement) => requirement.unlocked === true); return { ...badge, - is_unlocked: isUnlocked, + is_unlocked: !!allRequirementsCompleted, requirements: userBadge?.requirements || badge.requirements, }; diff --git a/components/quizzes/components/BadgeNotification.tsx b/components/quizzes/components/BadgeNotification.tsx index ff16a1295cc..e65acfc98f0 100644 --- a/components/quizzes/components/BadgeNotification.tsx +++ b/components/quizzes/components/BadgeNotification.tsx @@ -20,22 +20,22 @@ export const BadgeNotification = ({ const [isModalOpen, setIsModalOpen] = useState(false); const [badges, setBadges] = useState([]); - + const badgeDefaultImage = "/wolfie/wolfie-hack.png"; useEffect(() => { if (isCompleted && session) { awardBadge() .then((badge) => { - + if ( badge.result && Array.isArray(badge.result.badges) && badge.result.badges.length > 0 ) { - + setBadges(badge.result.badges); setShowFireworks(true); setIsModalOpen(true); - + } }) .catch((error) => { @@ -109,7 +109,7 @@ export const BadgeNotification = ({ {badges.map((badge, index) => (
{badge.name} } - className="z-50 inline-block! w-auto! max-w-[75vw]! border border-red-500" + className="z-50 inline-block! w-auto! max-w-[75vw]! border border-red-500" />
);