diff --git a/components/WinnersSection.tsx b/components/WinnersSection.tsx new file mode 100644 index 0000000..22e9d76 --- /dev/null +++ b/components/WinnersSection.tsx @@ -0,0 +1,108 @@ +"use client"; + +import { useMemo } from "react"; +import { FaTrophy, FaHistory } from "react-icons/fa"; + +export interface Winner { + name: string; + challengeTitle: string; + projectTitle: string; + deadline: Date; + placement: number; +} + +const monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; + +export default function WinnersSection({ winners }: { winners: Winner[] }) { + const mostRecentDate = useMemo(() => { + let mostRecentDateNow = new Date(0); + + for (const winner of winners) + if (winner.deadline > mostRecentDateNow) + mostRecentDateNow = winner.deadline; + return mostRecentDateNow; + + }, [winners]); + + const recentWinners = useMemo(() => { + return winners.filter((winner) => winner.deadline >= mostRecentDate); + }, [winners, mostRecentDate]); + + const prevWinners = useMemo(() => { + return winners.filter((winner) => winner.deadline < mostRecentDate); + }, [winners, mostRecentDate]); + + return ( +
{monthNames[deadline.getMonth()]} {deadline.getFullYear()}
+{name}
+{challengeTitle}
+