diff --git a/apps/dashboard/src/components/hackathon/EarnReasonSection.tsx b/apps/dashboard/src/components/hackathon/EarnReasonSection.tsx deleted file mode 100644 index bcf2584bfd8..00000000000 --- a/apps/dashboard/src/components/hackathon/EarnReasonSection.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { Container, Flex } from "@chakra-ui/react"; -import { Heading, Text } from "tw-components"; - -const EarnReasonSection = () => { - return ( - - - Why? - - - - - The digital landscape is evolving, and with it, the future of web3 - gaming. This is your invitation to lead the forefront of immersive - gaming experiences that promise to captivate a global audience. Earn - Alliance and thirdweb are excited to announce a pioneering hackathon - aimed at web3 gaming enthusiasts and innovative developers. We - challenge you to create a mini web3 game that not only entertains but - deeply engages over 400K gamers within the Earn Alliance community. - - - - Leverage the advanced blockchain platforms of Earn Alliance and - thirdweb, along with the power of Unity3D, to develop a captivating - and innovative gaming experience. This is a golden opportunity to - either showcase your skills or jump into the exciting realm of web3 - game development, offering a chance to innovate, shine, and - potentially transform the gaming world. - - - - Why You Should Participate - - - -
    -
  • Connect with fellow creators
  • -
  • Gain insights from industry leaders
  • -
  • Influence the web3 gaming future at the Pre-GDC Hackathon
  • -
-
-
-
- ); -}; - -export default EarnReasonSection; diff --git a/apps/dashboard/src/components/hackathon/FAQ.tsx b/apps/dashboard/src/components/hackathon/FAQ.tsx deleted file mode 100644 index 459762ed537..00000000000 --- a/apps/dashboard/src/components/hackathon/FAQ.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { Container, Flex } from "@chakra-ui/react"; -import { LandingFAQ } from "components/landing-pages/faq"; - -const faqs = [ - { - title: "When is the hackathon being held?", - description: "The event will be held between February 16th — 18th, 2024.", - }, - { - title: "Where is the hackathon held?", - description: - "This will be an in-person event held at the thirdweb offices in San Francisco. Teams will receive invites with a location following registration.", - }, - { - title: "Who is eligible to participate in the hackathon?", - description: - "This event is open to all! We welcome everybody from beginners building their first project to experienced developers (with or without blockchain experience).", - }, - { - title: "What is the total number of participants I can have on my team?", - description: - "The minimum number of participants in a team is 1, while the maximum number is 4.", - }, - { - title: "Do all of my team members have to register for the hackathon?", - description: - "Yes! Only registered individuals are eligible to participate. Please ensure that at least one member of your team has registered the entire team during their submission.", - }, - { - title: "Will I need a team in order to participate?", - description: - "While participants can submit a project individually, we encourage everyone to form teams (of up to a maximum of 4 members) where possible to make the ideation and development process more enjoyable!", - }, -]; - -const FAQ = ({ TRACKING_CATEGORY }: { TRACKING_CATEGORY: string }) => { - return ( - - - - ); -}; - -export default FAQ; diff --git a/apps/dashboard/src/components/hackathon/FAQEarn.tsx b/apps/dashboard/src/components/hackathon/FAQEarn.tsx deleted file mode 100644 index 2ea1de6707c..00000000000 --- a/apps/dashboard/src/components/hackathon/FAQEarn.tsx +++ /dev/null @@ -1,97 +0,0 @@ -import { Container, Flex } from "@chakra-ui/react"; -import { LandingFAQ } from "components/landing-pages/faq"; -import { Link, Text } from "tw-components"; - -const faqs = [ - { - title: "How do we integrate the Earn Alliance task system?", - description: ( - - Check out the docs, and email{" "} - - hackathon@earnalliance.com - {" "} - to access the test dashboard for Earn Alliance challenges and the event - system. - - ), - }, - { - title: "When is the hackathon being held?", - description: ( - - The event will be held between February 27th — March 16 2024. - - ), - }, - { - title: "Where is the hackathon held?", - description: ( - - This is an online hackathon featuring an in-person lunch, presentation, - and awards event at the thirdweb offices in San Francisco. Teams will - receive the location after registering. If you are chosen to present and - can't attend in person, you will be notified and can present - remotely. - - ), - }, - { - title: "Who is eligible to participate in the hackathon?", - description: ( - - This event is open to all! We welcome everybody from beginners building - their first project to experienced developers (with or without - blockchain experience) - - ), - }, - { - title: "What is the total number of participants I can have on my team?", - description: ( - - The minimum number of participants in a team is 1, while the maximum - number is 4 - - ), - }, - { - title: "Do all of my team members have to register for the hackathon?", - description: ( - - Yes! Only registered individuals are eligible to participate. Please - ensure that at least one member of your team has registered the entire - team during their submission - - ), - }, - { - title: "Will I need a team in order to participate?", - description: ( - - While participants can submit a project individually, we encourage - everyone to form teams (of up to a maximum of 4 members) where possible - to make the ideation and development process more enjoyable! - - ), - }, -]; - -const FAQEarn = ({ TRACKING_CATEGORY }: { TRACKING_CATEGORY: string }) => { - return ( - - - - ); -}; - -export default FAQEarn; diff --git a/apps/dashboard/src/components/hackathon/HacakthonEarnFooter.tsx b/apps/dashboard/src/components/hackathon/HacakthonEarnFooter.tsx deleted file mode 100644 index f188060c256..00000000000 --- a/apps/dashboard/src/components/hackathon/HacakthonEarnFooter.tsx +++ /dev/null @@ -1,96 +0,0 @@ -import { ChakraNextImage } from "components/Image"; -import { useTrack } from "hooks/analytics/useTrack"; -import { SearchIcon, WandIcon } from "lucide-react"; -import { Heading, LinkButton } from "tw-components"; - -interface HackathonEarnFooterProps { - TRACKING_CATEGORY: string; -} - -export const HackathonEarnFooter = ({ - TRACKING_CATEGORY, -}: HackathonEarnFooterProps) => { - const trackEvent = useTrack(); - - return ( -
- - - - GDC HACKATHON - - - - FEBRUARY 27 — MARCH 16 - - -
- - trackEvent({ - category: TRACKING_CATEGORY, - action: "click", - label: "register-now", - }) - } - h="68px" - w={{ base: "90%", md: 80 }} - fontSize="20px" - leftIcon={} - color="black" - flexShrink={0} - background="rgba(255,255,255,1)" - _hover={{ - background: "rgba(255,255,255,0.9)!important", - }} - isExternal - noIcon - > - Register now - - - - trackEvent({ - category: TRACKING_CATEGORY, - action: "click", - label: "register-now", - }) - } - h="68px" - w={{ base: "90%", md: 80 }} - fontSize="20px" - leftIcon={} - color="black" - flexShrink={0} - background="rgba(255,255,255,1)" - _hover={{ - background: "rgba(255,255,255,0.9)!important", - }} - isExternal - noIcon - > - Submission - -
-
- ); -}; diff --git a/apps/dashboard/src/components/hackathon/HackathonFooter.tsx b/apps/dashboard/src/components/hackathon/HackathonFooter.tsx deleted file mode 100644 index b4368740455..00000000000 --- a/apps/dashboard/src/components/hackathon/HackathonFooter.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import { Flex } from "@chakra-ui/react"; -import { ChakraNextImage } from "components/Image"; -import { useTrack } from "hooks/analytics/useTrack"; -import { SearchIcon, WandIcon } from "lucide-react"; -import { Heading, LinkButton } from "tw-components"; - -interface HackathonFooterProps { - TRACKING_CATEGORY: string; -} - -export const HackathonFooter = ({ - TRACKING_CATEGORY, -}: HackathonFooterProps) => { - const trackEvent = useTrack(); - - return ( -
- - - - - FEBRUARY 16 - 18 - - - - - trackEvent({ - category: TRACKING_CATEGORY, - action: "click", - label: "register-now", - }) - } - h="68px" - w={{ base: "90%", md: 80 }} - fontSize="20px" - leftIcon={} - color="black" - flexShrink={0} - background="rgba(255,255,255,1)" - _hover={{ - background: "rgba(255,255,255,0.9)!important", - }} - isExternal - noIcon - > - Register now - - - - trackEvent({ - category: TRACKING_CATEGORY, - action: "click", - label: "register-now", - }) - } - h="68px" - w={{ base: "90%", md: 80 }} - fontSize="20px" - leftIcon={} - color="black" - flexShrink={0} - background="rgba(255,255,255,1)" - _hover={{ - background: "rgba(255,255,255,0.9)!important", - }} - isExternal - noIcon - > - Submission - - -
- ); -}; diff --git a/apps/dashboard/src/components/hackathon/Judges.tsx b/apps/dashboard/src/components/hackathon/Judges.tsx deleted file mode 100644 index b233232ba41..00000000000 --- a/apps/dashboard/src/components/hackathon/Judges.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import { Flex, SimpleGrid } from "@chakra-ui/react"; -import { Heading, Text, TrackedLink } from "tw-components"; -import { MaskedAvatar } from "tw-components/masked-avatar"; - -interface JudgesProps { - TRACKING_CATEGORY: string; -} - -export const Judges = ({ TRACKING_CATEGORY }: JudgesProps) => { - const judges = [ - { - name: "Furqan Rydhan", - twitter: "FurqanR", - description: "Founder, thirdweb", - image: "/assets/landingpage/furqan-rydhan.png", - }, - { - name: "Chris Ahn", - twitter: "ahnchrisj", - description: "Partner, Haun Ventures", - image: "/assets/landingpage/chris.png", - }, - { - name: "Parker Jou", - twitter: "theappletucker", - description: "Founder & CTO, Caldera", - image: "/assets/landingpage/parker.jpg", - }, - { - name: "Franklin Bi", - twitter: "FranklinBi", - description: "Partner, Pantera Capital", - image: "/assets/landingpage/franklin.jpg", - }, - ]; - - return ( -
- Judges - - {judges.map((judge) => ( - - - - {judge.name} - - - {judge.description} - - - - @{judge.twitter} - - - - ))} - -
- ); -}; diff --git a/apps/dashboard/src/components/hackathon/JudgesEarn.tsx b/apps/dashboard/src/components/hackathon/JudgesEarn.tsx deleted file mode 100644 index ccb1938bdc1..00000000000 --- a/apps/dashboard/src/components/hackathon/JudgesEarn.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import { Flex, SimpleGrid } from "@chakra-ui/react"; -import { Heading, Text } from "tw-components"; -import { MaskedAvatar } from "tw-components/masked-avatar"; - -export const JudgesEarn = () => { - const judges = [ - { - name: "Furqan Rydhan", - description: "Founder, thirdweb", - image: "/assets/landingpage/furqan-rydhan.png", - }, - { - name: "Atif", - description: "VP of Business at thirdweb", - image: "/assets/landingpage/atif.png", - }, - { - name: "Joseph Cooper", - description: "Founder, Earn Alliance", - image: "/assets/landingpage/joseph.png", - }, - { - name: "Diana Choo", - description: "Head of BD and Partnerships, Earn Alliance", - image: "/assets/landingpage/diana.png", - }, - ]; - - return ( -
- Judges - - {judges.map((judge) => ( - - - - {judge.name} - - - {judge.description} - - - ))} - -
- ); -}; diff --git a/apps/dashboard/src/components/hackathon/Reason.tsx b/apps/dashboard/src/components/hackathon/Reason.tsx deleted file mode 100644 index a275d6831bc..00000000000 --- a/apps/dashboard/src/components/hackathon/Reason.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { Container, Flex } from "@chakra-ui/react"; -import { Heading, Text } from "tw-components"; - -const Reason = () => { - return ( - - - Why? - - - - - The next wave of web3 mass adoption is already happening.{" "} - - If you want to be one of the next big crypto apps, the time to build - is now! - - - - - This February, we're excited to host the{" "} - Consumer Crypto Hackathon — bringing the hungriest builders to - San Francisco to{" "} - discover the next billion-dollar web3 consumer app. Get - resources & expertise from top operators, find your next co-founder, - and meet builders & investors from{" "} - Caldera, Pantera Capital, Founders Inc, and Haun Ventures. - - - - ); -}; - -export default Reason; diff --git a/apps/dashboard/src/components/hackathon/ScheduleSection.tsx b/apps/dashboard/src/components/hackathon/ScheduleSection.tsx deleted file mode 100644 index 922d94c68f0..00000000000 --- a/apps/dashboard/src/components/hackathon/ScheduleSection.tsx +++ /dev/null @@ -1,86 +0,0 @@ -import { Box, Flex, LinkBox } from "@chakra-ui/react"; -import { Heading, Text } from "tw-components"; - -export const ScheduleSection: React.FC = () => { - const items = [ - { - day: 16, - title: - "Hackathon Kickoff: Intro to thirdweb, Team Formation | 5:00pm - 7:00pm", - }, - { - day: 17, - title: "Hack Day | 9:00am - 9:00pm", - }, - { - day: 18, - title: "Final Submission | 9:00am", - secondTitle: "Lunch & Winners Announcement | 12:00pm", - }, - ]; - - return ( - - - Schedule - - - - {items.map(({ day, title, secondTitle }) => ( - - - - FEBRUARY - - - {day} - - - - - {title} - - {secondTitle && ( - - {secondTitle} - - )} - - - ))} - - - ); -}; diff --git a/apps/dashboard/src/components/hackathon/ScheduleSectionEarn.tsx b/apps/dashboard/src/components/hackathon/ScheduleSectionEarn.tsx deleted file mode 100644 index 71c2ad35eec..00000000000 --- a/apps/dashboard/src/components/hackathon/ScheduleSectionEarn.tsx +++ /dev/null @@ -1,94 +0,0 @@ -import { Box, Flex, LinkBox } from "@chakra-ui/react"; -import { Heading, Text } from "tw-components"; - -export const ScheduleSectionEarn: React.FC = () => { - const items = [ - { - day: 17, - title: "Location: thirdweb Offices, San Francisco", - secondTitle: "12PM - 1:30PM Lunch", - thirdTitle: "1:30PM - 3PM Game Presentations", - fourthTitle: "3PM Awards", - }, - ]; - - return ( - - - Schedule - - - - {items.map(({ day, title, secondTitle, thirdTitle, fourthTitle }) => ( - - - - MARCH - - - {day} - - - - - {title} - - {secondTitle && ( - - {secondTitle} - - )} - {thirdTitle && ( - - {thirdTitle} - - )} - {fourthTitle && ( - - {fourthTitle} - - )} - - - ))} - - - ); -}; diff --git a/apps/dashboard/src/components/hackathon/Sponsors.tsx b/apps/dashboard/src/components/hackathon/Sponsors.tsx deleted file mode 100644 index 2373e007325..00000000000 --- a/apps/dashboard/src/components/hackathon/Sponsors.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import { Flex, SimpleGrid } from "@chakra-ui/react"; -import { ChakraNextImage } from "components/Image"; -import { Text, TrackedLink } from "tw-components"; - -const sponsors = [ - { - name: "Caldera", - logo: require("../../../public/assets/landingpage/caldera.png"), - link: "https://base.org/", - }, - { - name: "Founders.Inc", - logo: require("../../../public/assets/landingpage/founders.png"), - link: "https://f.inc/", - }, - { - name: "Haun Ventures", - logo: require("../../../public/assets/landingpage/haun.svg"), - link: "https://www.haun.co/", - }, - { - name: "Pantera", - logo: require("../../../public/assets/landingpage/pantera.png"), - link: "https://panteracapital.com", - }, -]; - -interface SponsorsProps { - TRACKING_CATEGORY: string; -} - -export const Sponsors = ({ TRACKING_CATEGORY }: SponsorsProps) => { - return ( - - - OUR PARTNERS - - - {sponsors.map((sponsor) => ( - - - - ))} - - - ); -}; diff --git a/apps/dashboard/src/components/hackathon/Timer.tsx b/apps/dashboard/src/components/hackathon/Timer.tsx deleted file mode 100644 index 75500eecff2..00000000000 --- a/apps/dashboard/src/components/hackathon/Timer.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import { useEffect, useState } from "react"; -import { Text } from "tw-components"; - -interface ITimeLeft { - days: number; - hours: number; - minutes: number; - seconds: number; -} - -interface TimerProps { - dateStr: string; -} - -function calculateTimeLeft(dateStr: string) { - const difference = Number(new Date(dateStr)) - Number(new Date()); - let timeLeft = { - days: 0, - hours: 0, - minutes: 0, - seconds: 0, - }; - - if (difference > 0) { - timeLeft = { - days: Math.floor(difference / (1000 * 60 * 60 * 24)), - hours: Math.floor((difference / (1000 * 60 * 60)) % 24), - minutes: Math.floor((difference / 1000 / 60) % 60), - seconds: Math.floor((difference / 1000) % 60), - }; - } - - return timeLeft as ITimeLeft; -} - -const Timer = ({ dateStr }: TimerProps) => { - const [timeLeft, setTimeLeft] = useState( - calculateTimeLeft(dateStr), - ); - const { days, hours, minutes, seconds } = timeLeft; - - // legitimate use-case - // eslint-disable-next-line no-restricted-syntax - useEffect(() => { - const interval = setInterval(() => { - setTimeLeft(calculateTimeLeft(dateStr)); - }, 1000); - - return () => clearInterval(interval); - }, [dateStr]); - - const items = [ - { label: "Day", value: days }, - { label: "Hour", value: hours }, - { label: "Min", value: minutes }, - { label: "Sec", value: seconds }, - ]; - - return ( -
- {items.map(({ label, value }) => ( -
- - {value < 10 ? `0${value}` : value} - - {value === 1 ? label : `${label}s`} -
- ))} -
- ); -}; - -export default Timer; diff --git a/apps/dashboard/src/components/hackathon/common/AvatarShowcase.tsx b/apps/dashboard/src/components/hackathon/common/AvatarShowcase.tsx deleted file mode 100644 index b2b6a09e1bb..00000000000 --- a/apps/dashboard/src/components/hackathon/common/AvatarShowcase.tsx +++ /dev/null @@ -1,73 +0,0 @@ -import { Avatar, Flex } from "@chakra-ui/react"; -import { Heading, Text, TrackedLink } from "tw-components"; - -interface AvatarShowcaseProps { - title: string; - avatars: { - name: string; - image: string; - company: string; - twitter: string; - }[]; - trackingCategory: string; -} - -export const AvatarShowcase: React.FC = ({ - title, - avatars, - trackingCategory, -}) => { - return ( -
- {title} - - {avatars.map((avatar) => ( - - - - - {avatar.name} - - - {avatar.company} - - - - @{avatar.twitter} - - - - - ))} - -
- ); -}; diff --git a/apps/dashboard/src/components/hackathon/common/ScheduleSection.tsx b/apps/dashboard/src/components/hackathon/common/ScheduleSection.tsx deleted file mode 100644 index fe4cd767ff6..00000000000 --- a/apps/dashboard/src/components/hackathon/common/ScheduleSection.tsx +++ /dev/null @@ -1,117 +0,0 @@ -import { Flex, LinkBox, LinkOverlay } from "@chakra-ui/react"; -import { useTrack } from "hooks/analytics/useTrack"; -import { MoveRightIcon } from "lucide-react"; -import { Badge, Heading, LinkButton, Text } from "tw-components"; - -interface ScheduleItem { - day: number; - month: string; - title: string; - href: string; - irl?: string; -} - -interface ScheduleSectionProps { - scheduleItems: ScheduleItem[]; - addToCalendar?: string; - TRACKING_CATEGORY: string; -} - -export const ScheduleSection: React.FC = ({ - scheduleItems, - addToCalendar, - TRACKING_CATEGORY, -}) => { - const trackEvent = useTrack(); - - return ( - - - Schedule & Workshops - {addToCalendar ? ( - - Add to Calendar - - ) : null} - - - {scheduleItems.map(({ day, month, title, href, irl }) => ( - - - - {month} - - - {day} - - - - - trackEvent({ - category: TRACKING_CATEGORY, - action: "event", - label: title, - }) - } - > - - - {title} - - {irl && ( - - At our {irl} Office! - - )} - - - - - - ))} - - - ); -}; diff --git a/apps/dashboard/src/components/hackathon/common/Sponsors.tsx b/apps/dashboard/src/components/hackathon/common/Sponsors.tsx deleted file mode 100644 index 74d9a055084..00000000000 --- a/apps/dashboard/src/components/hackathon/common/Sponsors.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import { Box, Flex, Image } from "@chakra-ui/react"; -import { Heading, TrackedLink } from "tw-components"; - -interface Sponsor { - name: string; - logo: string; - link: string; -} - -interface SponsorProps { - sponsors: Sponsor[]; - hackathonName: string; -} - -export const Sponsors: React.FC = ({ - sponsors, - hackathonName, -}) => { - return ( - - - Our Partners - - - {sponsors.map(({ name, link, logo }) => ( - - {name} - - ))} - - - ); -}; diff --git a/apps/dashboard/src/components/hackathon/common/Timer.tsx b/apps/dashboard/src/components/hackathon/common/Timer.tsx deleted file mode 100644 index 2966bb2b0f5..00000000000 --- a/apps/dashboard/src/components/hackathon/common/Timer.tsx +++ /dev/null @@ -1,83 +0,0 @@ -import { Flex } from "@chakra-ui/react"; -import { useEffect, useState } from "react"; -import { Text } from "tw-components"; - -interface ITimeLeft { - days: number; - hours: number; - minutes: number; - seconds: number; -} - -interface TimerProps { - date: string; -} - -function calculateTimeLeft(date: string) { - const difference = Number(new Date(date)) - Number(new Date()); - let timeLeft = {}; - - if (difference > 0) { - timeLeft = { - days: Math.floor(difference / (1000 * 60 * 60 * 24)), - hours: Math.floor((difference / (1000 * 60 * 60)) % 24), - minutes: Math.floor((difference / 1000 / 60) % 60), - seconds: Math.floor((difference / 1000) % 60), - }; - } - - return timeLeft as ITimeLeft; -} - -const Timer: React.FC = ({ date }) => { - const [timeLeft, setTimeLeft] = useState(calculateTimeLeft(date)); - const { days, hours, minutes, seconds } = timeLeft; - - // legitimate use-case - // eslint-disable-next-line no-restricted-syntax - useEffect(() => { - const interval = setInterval(() => { - setTimeLeft(calculateTimeLeft(date)); - }, 1000); - - return () => clearInterval(interval); - }, [date]); - - const items = [ - { label: "Day", value: days }, - { label: "Hour", value: hours }, - { label: "Min", value: minutes }, - { label: "Sec", value: seconds }, - ]; - - return ( -
- {items.map(({ label, value }) => ( - - - {value < 10 ? `0${value}` : value}{" "} - - - {value === 1 ? label : `${label}s`} - - - ))} -
- ); -}; - -export default Timer; diff --git a/apps/dashboard/src/components/hackathon/gaming/CTAFooter.tsx b/apps/dashboard/src/components/hackathon/gaming/CTAFooter.tsx deleted file mode 100644 index b45ae056b16..00000000000 --- a/apps/dashboard/src/components/hackathon/gaming/CTAFooter.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import { Box, Flex } from "@chakra-ui/react"; -import { Logo } from "components/logo"; -import { useTrack } from "hooks/analytics/useTrack"; -import { Heading, LinkButton } from "tw-components"; - -export const CTAFooter: React.FC = () => { - const trackEvent = useTrack(); - - return ( - - - - - - - Build the Future of Gaming. - - - - $100,000 in Prizes & Perks. - - - - trackEvent({ - category: "readyplayer3", - action: "click", - label: "register-now", - }) - } - py={7} - px={14} - fontSize="20px" - color="black" - flexShrink={0} - background="rgba(255,255,255,1)" - _hover={{ - background: "rgba(255,255,255,0.9) !important", - }} - isExternal - noIcon - mx="auto" - mt={8} - > - Register Now - - - ); -}; diff --git a/apps/dashboard/src/components/hackathon/gaming/FAQSection.tsx b/apps/dashboard/src/components/hackathon/gaming/FAQSection.tsx deleted file mode 100644 index 9464b68dffb..00000000000 --- a/apps/dashboard/src/components/hackathon/gaming/FAQSection.tsx +++ /dev/null @@ -1,122 +0,0 @@ -import { - Accordion, - AccordionButton, - AccordionIcon, - AccordionItem, - AccordionPanel, - Flex, - Link, -} from "@chakra-ui/react"; -import { Heading, Text } from "tw-components"; - -const FAQs = [ - { - question: "Who can participate?", - answer: - "18+ only. If you're under the age limit, please reach out to our team for the necessary registration forms for minors.", - }, - { - question: "Where will this event take place?", - answer: ( - <> - The ReadyPlayer3 Hackathon will take place via{" "} - - DevPost - - . - - ), - }, - { - question: "I don’t have a team. Is there any way I can find one?", - answer: - "You can use DevPost to find other individuals looking to team up! Additionally, feel free to post in our #team-up channel in the discord if you need additional ", - }, - { - question: - "I need to modify my submission but I already submitted my project. Is it too late to change it?", - answer: - "As long as it is not past the submission date, send us a message and we will note to review your most recent submission. ", - }, - { - question: "Do I need to host the project live or can it be on localhost?", - answer: "It can be on localhost. Just don’t tell Furqan. 🤫", - }, - { - question: "When can I start working on my project?", - answer: - "To keep it fair, we ask participants to start their project on or after the start date. Any submissions with a repository created prior to the start date will be automatically disqualified. ", - }, - { - question: "Where can I see all the build tracks?", - answer: ( - <> - Check out{" "} - - this notion document. - - - ), - }, -]; - -export const FaqSection: React.FC = () => { - return ( - - - FAQs - - - - {FAQs.map(({ question, answer }) => ( - - - - {question} - - - - - {answer} - - - ))} - - - - ); -}; diff --git a/apps/dashboard/src/components/hackathon/gaming/GameShowcase.tsx b/apps/dashboard/src/components/hackathon/gaming/GameShowcase.tsx deleted file mode 100644 index ea20b667d47..00000000000 --- a/apps/dashboard/src/components/hackathon/gaming/GameShowcase.tsx +++ /dev/null @@ -1,101 +0,0 @@ -import { - Box, - Flex, - Modal, - ModalCloseButton, - ModalContent, - ModalOverlay, - SimpleGrid, -} from "@chakra-ui/react"; -import { GameCard } from "components/product-pages/common/GameCard"; -import { useState } from "react"; -import { Heading } from "tw-components"; - -const games = [ - { - id: "karting", - name: "3D Racer", - description: - "Purchase Vehicle NFTs from an in-game marketplace and start earning ERC20 tokens used to buy upgrades.", - image: require("../../../../public/assets/solutions-pages/gaming/3d-racer.png"), - href: "https://unity-karting-game.thirdweb-example.com/", - github: "https://github.com/thirdweb-example/unity-karting-game", - }, - { - id: "rpg", - name: "2D RPG", - description: - "Complete quests to earn in-game currency and buy NFTs from a marketplace that you can view in your inventory.", - image: require("../../../../public/assets/solutions-pages/gaming/2d-rpg.png"), - href: "https://unity-rpg-game.thirdweb-example.com/", - github: "https://github.com/thirdweb-example/unity-rpg-game", - }, - { - id: "lootbox", - name: "NFT Lootbox", - description: - "Purchase NFT loot boxes from a marketplace and open them to reveal randomly selected NFTs inside!", - image: require("../../../../public/assets/solutions-pages/gaming/nft-lootbox.png"), - href: "https://unity-nft-lootboxes.thirdweb-example.com/", - github: "https://github.com/thirdweb-example/unity-nft-lootboxes", - }, -]; - -export const GameShowcase = () => { - const [selectedGame, setSelectedGame] = useState(""); - - return ( - - - What can you build? - - - Try our demo games and get inspired on how to integrate web3 into your - game. - - - {games.map((game) => ( - - ))} - - - setSelectedGame("")} - size="6xl" - > - - - - - - -
- -
-
-
-
- ); -}; diff --git a/apps/dashboard/src/components/hackathon/gaming/Resources.tsx b/apps/dashboard/src/components/hackathon/gaming/Resources.tsx deleted file mode 100644 index 4224079c32b..00000000000 --- a/apps/dashboard/src/components/hackathon/gaming/Resources.tsx +++ /dev/null @@ -1,65 +0,0 @@ -import { Flex, SimpleGrid } from "@chakra-ui/react"; -import { Heading, TrackedLink } from "tw-components"; - -export const Resources: React.FC = () => { - const resources = [ - { - name: "Gaming", - link: "https://portal.thirdweb.com/unity", - image: "/assets/hackathon/resources/readyplayer3/gamingkit.png", - }, - { - name: "Gaming Guides & Tutorials", - link: "https://blog.thirdweb.com/tag/gaming", - image: "/assets/hackathon/resources/readyplayer3/gamingkit-blogs.png", - }, - { - name: "Gaming Quickstart", - link: "https://portal.thirdweb.com/unity", - image: "/assets/hackathon/resources/readyplayer3/quickstart.png", - }, - ]; - - return ( - - - Resources - - - {resources.map(({ name, link, image }) => ( - - {name} - - ))} - - - ); -}; diff --git a/apps/dashboard/src/components/product-pages/common/GameCard.tsx b/apps/dashboard/src/components/product-pages/common/GameCard.tsx deleted file mode 100644 index d7c6f2e2e64..00000000000 --- a/apps/dashboard/src/components/product-pages/common/GameCard.tsx +++ /dev/null @@ -1,110 +0,0 @@ -import { Box, Flex, useBreakpointValue } from "@chakra-ui/react"; -import { GithubIcon } from "components/icons/brand-icons/GithubIcon"; -import { useTrack } from "hooks/analytics/useTrack"; -import { GamepadIcon } from "lucide-react"; -import NextImage, { type StaticImageData } from "next/image"; -import { - Button, - Card, - Heading, - Link, - Text, - TrackedIconButton, -} from "tw-components"; - -type Game = { - id: string; - name: string; - description: string; - href: string; - github: string; - image: StaticImageData; -}; - -interface GameCardProps { - game: Game; - setSelectedGame: (game: string) => void; -} - -const TRACK_CATEGORY = "game_template_card"; - -export const GameCard: React.FC = ({ - game, - setSelectedGame, -}) => { - const isMobile = useBreakpointValue({ base: true, md: false }); - const track = useTrack(); - return ( - { - if (isMobile) { - window.open(game.href, "_blank"); - } else { - setSelectedGame(game.href); - } - track({ - category: TRACK_CATEGORY, - action: "play_game", - label: game.id, - }); - }} - > - - -
- -
-
- - - - {game.name} - - {game.description} - - { - e.stopPropagation(); - }} - size="sm" - variant="ghost" - icon={} - aria-label="GitHub" - category={TRACK_CATEGORY} - label={game.id} - href={game.github} - isExternal - /> - - -
- ); -}; diff --git a/apps/dashboard/src/page-id.ts b/apps/dashboard/src/page-id.ts index ca9025ca052..c7469d41184 100644 --- a/apps/dashboard/src/page-id.ts +++ b/apps/dashboard/src/page-id.ts @@ -54,13 +54,8 @@ export enum PageId { // thirdweb.com/cointracts ContractsLanding = "contracts-landing", - // thirdweb.com/hackathon/earn - HackathonEarnLanding = "earn-thirdweb-hacakthon", // thirdweb.com/grant/superchain GrantSuperChain = "grant-superchain", - // thirdweb.com/hackathon - HackathonLanding = "base-thirdweb-hacakthon", - ReadyPlayer3Landing = "readyplayer3", // --------------------------------------------------------------------------- // general product pages diff --git a/apps/dashboard/src/pages/hackathon/consumer-crypto.tsx b/apps/dashboard/src/pages/hackathon/consumer-crypto.tsx deleted file mode 100644 index 4a3856f3592..00000000000 --- a/apps/dashboard/src/pages/hackathon/consumer-crypto.tsx +++ /dev/null @@ -1,293 +0,0 @@ -import { useForceDarkTheme } from "@/components/theme-provider"; -import { Box, Divider, Flex } from "@chakra-ui/react"; -import { ChakraNextImage } from "components/Image"; -import FAQ from "components/hackathon/FAQ"; -import { HackathonFooter } from "components/hackathon/HackathonFooter"; -import { Judges } from "components/hackathon/Judges"; -import Reason from "components/hackathon/Reason"; -import { ScheduleSection } from "components/hackathon/ScheduleSection"; -import { Sponsors } from "components/hackathon/Sponsors"; -import { Aurora } from "components/homepage/Aurora"; -import { HomepageTopNav } from "components/product-pages/common/Topnav"; -import { HomepageSection } from "components/product-pages/homepage/HomepageSection"; -import { useTrack } from "hooks/analytics/useTrack"; -import { getAbsoluteUrl } from "lib/vercel-utils"; -import { WandIcon } from "lucide-react"; -import { NextSeo } from "next-seo"; -import dynamic from "next/dynamic"; -import { PageId } from "page-id"; -import { Heading, LinkButton, Text } from "tw-components"; - -const List = dynamic( - () => import("@chakra-ui/react").then((result) => result.List), - { - ssr: false, - }, -); - -const Timer = dynamic(() => import("components/hackathon/Timer"), { - ssr: false, -}); - -const TRACKING_CATEGORY = "caldera-thirdweb-hacakthon"; - -const Hackathon = () => { - const trackEvent = useTrack(); - useForceDarkTheme(); - return ( - <> - - - - - - - - - - - {/* right */} - - - - - - - FEBRUARY 16 - 18 - - - - - - trackEvent({ - category: "hackathon", - action: "click", - label: "register-now", - }) - } - h="68px" - w={{ base: "100%", md: 96 }} - fontSize="20px" - leftIcon={} - color="black" - flexShrink={0} - background="rgba(255,255,255,1)" - _hover={{ - background: "rgba(255,255,255,0.9)!important", - }} - isExternal - noIcon - > - Register now - - - - - - - - - - - - - - - - - - - Prizes & Benefits - - - - -
  • - • $10,000 in thirdweb credits — $5K for 1st place, $3K for - 2nd place, $2K for 3rd place -
  • -
  • • 1 ETH for 1st Place
  • -
  • - • Meet & present to builders, operators, & investors in - crypto — from Caldera, Pantera Capital, Founders Inc, and - Haun Ventures -
  • -
  • - • Amplification to 70k+ followers on thirdweb's - social channels -
  • -
  • • $50 Gas Sponsorship for every hackathon builder
  • -
    -
    -
    -
    -
    - - - - - Guidelines - - - - To be eligible to win the hackathon, submitted projects must - fulfill the following requirements: - - - -
  • - • Built using any of the following thirdweb products: - Engine, In-App Wallets, and/or Account Abstraction -
  • -
  • • Code must be open-source
  • -
  • - • Project must be submitted through GitHub, with a - descriptive README file detailing what the project is, - what its goals are, and how you built it -
  • -
    -
    - - Participants will be able to submit their project to the form - in the hackathon landing page before the deadline, on - February 18th at 9:00am PST. - -
    -
    -
    - - - - - - Judging Criteria - - - - Our judges will grade submissions across 3 equally-weighted - categories: - - - -
  • - 1. Usability: How useful or valuable is the - product? How feasible is the idea? -
  • -
  • - 2. Ecosystem Impact: How impactful and useful is - this app in the web3 ecosystem as a whole? -
  • -
  • - 3. Originality, Creativity, and Innovation: How - novel is the project versus existing technologies? -
  • -
    -
    -
    -
    -
    - - - - - - -
    -
    - - ); -}; - -Hackathon.pageId = PageId.HackathonLanding; - -export default Hackathon; diff --git a/apps/dashboard/src/pages/hackathon/earn.tsx b/apps/dashboard/src/pages/hackathon/earn.tsx deleted file mode 100644 index a3852e05f9f..00000000000 --- a/apps/dashboard/src/pages/hackathon/earn.tsx +++ /dev/null @@ -1,356 +0,0 @@ -import { useForceDarkTheme } from "@/components/theme-provider"; -import { Box, Divider, Flex } from "@chakra-ui/react"; -import { ChakraNextImage } from "components/Image"; -import EarnReasonSection from "components/hackathon/EarnReasonSection"; -import FAQEarn from "components/hackathon/FAQEarn"; -import { HackathonEarnFooter } from "components/hackathon/HacakthonEarnFooter"; -import { JudgesEarn } from "components/hackathon/JudgesEarn"; -import { ScheduleSectionEarn } from "components/hackathon/ScheduleSectionEarn"; -import { Aurora } from "components/homepage/Aurora"; -import { HomepageTopNav } from "components/product-pages/common/Topnav"; -import { HomepageSection } from "components/product-pages/homepage/HomepageSection"; -import { useTrack } from "hooks/analytics/useTrack"; -import { getAbsoluteUrl } from "lib/vercel-utils"; -import { WandIcon } from "lucide-react"; -import { NextSeo } from "next-seo"; -import dynamic from "next/dynamic"; -import { PageId } from "page-id"; -import { Heading, LinkButton, Text } from "tw-components"; - -const List = dynamic( - () => import("@chakra-ui/react").then((result) => result.List), - { - ssr: false, - }, -); - -const Timer = dynamic(() => import("components/hackathon/Timer"), { - ssr: false, -}); - -const TRACKING_CATEGORY = "earn-thirdweb-hacakthon"; - -const title = - "Game Developers Hackathon: Web3 Gaming Innovation at GDC 2024 | Earn Alliance & Thirdweb"; - -const description = - "Game developers, join the Pixel Pioneers Hackathon at GDC 2024, hosted by Earn Alliance & ThirdWeb. Dive into Web3 game development for a 400K+ gamer community and lead blockchain gaming innovation. Sign Up Here."; - -const HackathonEarn = () => { - const trackEvent = useTrack(); - useForceDarkTheme(); - - return ( - <> - - - - - - - - - - {/* right */} - - - - - - GDC HACKATHON - - - - FEBRUARY 27 — MARCH 16 - - - - - - - - trackEvent({ - category: "hackathon", - action: "click", - label: "register-now", - }) - } - h="68px" - w={{ base: "100%", md: 96 }} - fontSize="20px" - leftIcon={} - color="black" - flexShrink={0} - background="rgba(255,255,255,1)" - _hover={{ - background: "rgba(255,255,255,0.9)!important", - }} - isExternal - noIcon - > - Register now - - - - - - - - - - - - - - - - - Prizes & Benefits - - - -
  • - 100,000 $ALLY tokens to the top 3 projects - -
  • Grand Prize 50K $Ally Token
  • -
  • 1st Place 30k $Ally Token
  • -
  • 2nd Place 20K $Ally Token
  • -
    - -
  • Featured prototypes on Earn Alliance for 30 days.
  • -
  • - 3 months free access to thirdweb Engine + Growth Plan. -
  • -
  • Social media amplification to over 200K+ followers.
  • - -
    -
    -
    - - - - - Guidelines - - - - Participants must: - - - -
  • - Design a Unity 3D web mini-game with simple, engaging - tasks and crypto rewards. -
  • -
  • - Leverage thirdweb's developer tools for blockchain - tech -
  • -
  • Optionally, include NFT or crypto game rewards
  • -
  • - Integrate at least one challenge using the Earn Alliance - platform's events API -
  • -
    -
    -
    -
    -
    - - - - - - Judging Criteria - - - - Submissions will be evaluated on: - - - - -
  • - User Experience / Playability: How intuitive and easy is - the game? -
  • -
  • - Ecosystem impact: How impactful, useful, and creative does - the game leverage web3 technology to impact the web3 game - ecosystem as a whole? -
  • -
  • - Originality/innovation: How fun and novel is the game - versus existing web3 games -
  • -
    -
    -
    -
    -
    - - - - - - Event Details - - - - -
  • Dates: February 27th — March 16th, 2024
  • -
  • - Remote Hackathon + In-person presentations and awards @ - thirdweb's San Francisco offices on March 17th - -
  • You can present remotely via discord
  • -
    - -
  • - Open to all skill levels, from beginners to experienced - developers -
  • -
  • - Team size: 1 to 4 members, all must be registered to - participate -
  • - -
    -
    -
    -
    - - - - - - -
    -
    - - ); -}; - -HackathonEarn.pageId = PageId.HackathonEarnLanding; - -export default HackathonEarn; diff --git a/apps/dashboard/src/pages/hackathon/readyplayer3.tsx b/apps/dashboard/src/pages/hackathon/readyplayer3.tsx deleted file mode 100644 index e9588c184bd..00000000000 --- a/apps/dashboard/src/pages/hackathon/readyplayer3.tsx +++ /dev/null @@ -1,552 +0,0 @@ -import { useForceDarkTheme } from "@/components/theme-provider"; -import { Box, Flex, Image } from "@chakra-ui/react"; -import { ClientOnly } from "components/ClientOnly/ClientOnly"; -import { ChakraNextImage } from "components/Image"; -import { HomepageFooter } from "components/footer/Footer"; -import { AvatarShowcase } from "components/hackathon/common/AvatarShowcase"; -import { ScheduleSection } from "components/hackathon/common/ScheduleSection"; -import { Sponsors } from "components/hackathon/common/Sponsors"; -import { CTAFooter } from "components/hackathon/gaming/CTAFooter"; -import { FaqSection } from "components/hackathon/gaming/FAQSection"; -import { GameShowcase } from "components/hackathon/gaming/GameShowcase"; -import { Resources } from "components/hackathon/gaming/Resources"; -import { HomepageTopNav } from "components/product-pages/common/Topnav"; -import { HomepageSection } from "components/product-pages/homepage/HomepageSection"; -import { isAfter } from "date-fns/isAfter"; -import { useTrack } from "hooks/analytics/useTrack"; -import { NextSeo } from "next-seo"; -import dynamic from "next/dynamic"; -import { PageId } from "page-id"; -import { Heading, Link, LinkButton, Text } from "tw-components"; -import type { ThirdwebNextPage } from "utils/types"; - -const Timer = dynamic(() => import("components/hackathon/common/Timer"), { - ssr: false, -}); - -const metadata = { - title: - "Join the 'Ready Player 3' Hackathon and Transform the Gaming World with Web3 and Unity!", - description: - "Unleash your full potential as a game dev and build the future of gaming with thirdweb's 'Ready Player 3' Hackathon. Supported by Coinbase Cloud and more.", -}; - -const sponsors = [ - { - name: "Coinbase", - logo: "/assets/investors/coinbase-cloud-white.svg", - link: "https://www.coinbase.com/", - }, - { - name: "AWS activate", - logo: "/assets/hackathon/sponsors/aws.svg", - link: "https://aws.amazon.com/", - }, - { - name: "Scenario", - logo: "/assets/hackathon/sponsors/scenario.png", - link: "https://scenario.gg/", - }, - { - name: "Consensus", - logo: "/assets/hackathon/sponsors/consensus.png", - link: "https://www.coindesk.com/consensus/", - }, - { - name: "Spindl", - logo: "/assets/hackathon/sponsors/spindl.png", - link: "https://www.spindl.xyz/", - }, - // { - // name: "Optimism", - // logo: "/assets/hackathon/sponsors/optimism.png", - // link: "https://www.optimism.io/", - // }, - { - name: "Fractal", - logo: "/assets/hackathon/sponsors/fractal.png", - link: "https://www.fractal.is/", - }, -]; - -const judges = [ - { - name: "Antonio Garcia Martinez", - twitter: "antoniogm", - image: "/assets/landingpage/antonio-garcia.jpg", - company: "Spindl", - }, - { - name: "Justin Kan", - twitter: "justinkan", - image: "/assets/landingpage/justin-kan.jpg", - company: "Fractal", - }, - { - name: "Emmanuel de Maistre", - twitter: "emmanuel_2m", - image: "/assets/landingpage/emmanuel.jpg", - company: "Scenario", - }, - { - name: "Kevin DeGods", - twitter: "kevindegods", - image: "/assets/landingpage/kevin-degods.png", - company: "Dust Labs", - }, - { - name: "Sam Frankel", - twitter: "sfrankel9", - image: "/assets/landingpage/sam-frankel.jpg", - company: "Coinbase", - }, -]; - -const mentors = [ - { - name: "Drew Falkman", - twitter: "drewfalkman", - image: "/assets/landingpage/drew-falkman2.jpg", - company: "frens", - }, - { - name: "Daniel Eugene Botha", - twitter: "hashlipsnft", - image: "/assets/landingpage/hashlips.jpg", - company: "Hashlips & Edenlans", - }, - { - name: "Joaquim Verges", - twitter: "joenrv", - image: "/assets/landingpage/joaquim-verges.png", - company: "thirdweb", - }, - { - name: "Hubert Thieblot", - twitter: "hthieblot", - image: "/assets/landingpage/hubert-thieblot.jpg", - company: "Founders, Inc.", - }, - { - name: "Shai Perednik", - twitter: "shaiss", - image: "/assets/landingpage/shai-perednik.jpeg", - company: "AWS", - }, - { - name: "Leanne Bats", - twitter: "leannebats", - image: "/assets/landingpage/leannebats.jpg", - company: "Tres Cool", - }, -]; - -const scheduleItems = [ - { - day: 16, - month: "jan", - title: "Hackathon Kickoff + Intro to Gaming", - href: "https://lu.ma/rp3kickoff", - }, - { - day: 17, - month: "jan", - title: "Getting started with thirdweb", - href: "https://lu.ma/rp3gettingstarted", - }, - { - day: 18, - month: "jan", - title: "Create AI-Generated in-game NFT Assets with Scenario.gg", - href: "https://lu.ma/rp3scenario", - }, - { - day: 23, - month: "jan", - title: "Workshop with Spindl", - href: "https://lu.ma/rp3spindl", - }, - { - day: 24, - month: "jan", - title: "Fireside Chat with Fractal", - href: "https://lu.ma/rp3fractal", - }, - { - day: 25, - month: "jan", - title: "thirdweb & Coinbase Cloud Code-Along: Build With Gaming", - href: "https://lu.ma/rp3gamecodealong", - }, - { - day: 6, - month: "feb", - title: "How To Create Your Hackathon Submission on DevPost + Q&A", - href: "https://lu.ma/rp3submissions", - }, - { - day: 17, - month: "feb", - title: "Hackathon Closing Ceremony + Winners Announcement", - href: "https://lu.ma/rp3closing", - }, -]; - -const ReadyPlayer3Landing: ThirdwebNextPage = () => { - const trackEvent = useTrack(); - useForceDarkTheme(); - - return ( - <> - - - - - - {/* Hero Auroras */} - - - - - - {/* Hero */} - - - - - - - - Build the Future of Gaming. - - - {/* Price */} - - - $100,000 - - in Prizes & Perks. - - - {/* Time */} - - Jan 16th - Feb 17th - - - }> - - {isAfter(new Date(), new Date("2021-01-16T00:00:00.000Z")) ? ( - <> - - - trackEvent({ - category: "readyplayer3", - action: "click", - label: "register-now", - }) - } - px={14} - py={7} - fontSize="20px" - minW="320px" - // leftIcon={} - // color="black" - flexShrink={0} - background="white" - _hover={{ - background: "white !important", - boxShadow: "0 0 50px rgb(251 26 164 / 30%)", - }} - boxShadow="0 0 40px hwb(277deg 26% 0% / 30%)" - isExternal - noIcon - mt={20} - gap={2} - color="black" - > - Register now - - - ) : ( - - trackEvent({ - category: "readyplayer3", - action: "click", - label: "submit-project", - }) - } - px={14} - py={7} - fontSize="20px" - minW="320px" - // leftIcon={} - color="black" - flexShrink={0} - background="white" - _hover={{ - background: "white !important", - }} - isExternal - noIcon - mt={8} - // isDisabled - > - Submit Your Project - - )} - - - - - - {/* Partners */} - - - - - {/* Prizes */} - - - - Prizes & Perks - - prizes - - - In addition to these prizes, participating teams also have an - opportunity to receive: - - -
      -
    • - Top 3 teams of {`"`}Main Build Track{`"`} will receive Pro - Tickets ($1,700 value each) to Consensus 2023 Presented by - CoinDesk -
    • -
    • - Top 3 teams receive a complimentary 1-Year Subscription to{" "} - - Scenario.gg - -
    • -
    • - All participating teams with a submitted project are - eligible for up to $5,000 in AWS credits (as long as - they've not previously been an AWS credit recipient) -
    • -
    • - All participating teams with a project submitted will - receive 1-month free of Scenario.gg -
    • -
    -
    -
    -
    - - -
    - - {/* Judges */} - - - - - {/* Mentors */} - - - - - {/* Schedule */} - - - - - - - {/* Games showcase */} - - - - - - {/* Resources */} - - - - - {/* FAQ */} - - - - - {/* CTA #2 */} - - - {/* Footer */} - - - -
    -
    - - ); -}; - -ReadyPlayer3Landing.pageId = PageId.ReadyPlayer3Landing; - -export default ReadyPlayer3Landing;