diff --git a/app/(pages)/(hackers)/_components/ProjectInfo/FAQAccordian/MusicPlayer.tsx b/app/(pages)/(hackers)/_components/ProjectInfo/FAQAccordian/MusicPlayer.tsx
index aa586e948..4771f5c0c 100644
--- a/app/(pages)/(hackers)/_components/ProjectInfo/FAQAccordian/MusicPlayer.tsx
+++ b/app/(pages)/(hackers)/_components/ProjectInfo/FAQAccordian/MusicPlayer.tsx
@@ -3,7 +3,7 @@
import { useState, useRef, useEffect } from 'react';
import Image from 'next/image';
import styles from './MusicPlayer.module.scss';
-import vinyl from 'public/judges/hub/vinyl.svg';
+import vinyl from 'public/hackers/vinyl.svg';
import pauseIcon from 'public/hackers/pause-icon.svg';
import playIcon from 'public/hackers/play-icon.svg';
diff --git a/app/(pages)/(hackers)/_components/ProjectInfo/SubmissionInfo/SubmissionSteps/SubmitProject/VinylPlayer.tsx b/app/(pages)/(hackers)/_components/ProjectInfo/SubmissionInfo/SubmissionSteps/SubmitProject/VinylPlayer.tsx
index 75afddc25..52dc1af9a 100644
--- a/app/(pages)/(hackers)/_components/ProjectInfo/SubmissionInfo/SubmissionSteps/SubmitProject/VinylPlayer.tsx
+++ b/app/(pages)/(hackers)/_components/ProjectInfo/SubmissionInfo/SubmissionSteps/SubmitProject/VinylPlayer.tsx
@@ -3,7 +3,7 @@
import { useState, useRef, useEffect } from 'react';
import Image from 'next/image';
import styles from './VinylPlayer.module.scss';
-import vinyl from 'public/judges/hub/vinyl.svg';
+import vinyl from 'public/hackers/vinyl.svg';
import pauseIcon from 'public/hackers/pause-icon.svg';
import playIcon from 'public/hackers/play-icon.svg';
diff --git a/app/(pages)/judges/(app)/_components/JudgingHub/Dismiss.tsx b/app/(pages)/judges/(app)/_components/JudgingHub/Dismiss.tsx
deleted file mode 100644
index 24663eb18..000000000
--- a/app/(pages)/judges/(app)/_components/JudgingHub/Dismiss.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import styles from './ViewProjects.module.scss';
-
-export default function Dismiss() {
- function dismiss() {
- const x = document.getElementById('dismiss');
- if (x && x.style.display === 'none') {
- x.style.display = 'block';
- }
- }
- return (
-
-
-
โ Waiting for next round...
-
- Thank you for judging the demos. You are not assigned a panel for the
- next judging stage.
-
-
-
-
- );
-}
diff --git a/app/(pages)/judges/(app)/_components/JudgingHub/HubHero.tsx b/app/(pages)/judges/(app)/_components/JudgingHub/HubHero.tsx
deleted file mode 100644
index 06f75cbe2..000000000
--- a/app/(pages)/judges/(app)/_components/JudgingHub/HubHero.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import Image from 'next/image';
-import judgeHeroes from '/public/judges/hub/judgingheroes.svg';
-
-export default function HubHero() {
- return (
-
-
-
-
Welcome!
-
- We appreciate you for helping us judge one of California's biggest
- hackathons!
-
-
-
-
-
- );
-}
diff --git a/app/(pages)/judges/(app)/_components/JudgingHub/JudgingHub.module.scss b/app/(pages)/judges/(app)/_components/JudgingHub/JudgingHub.module.scss
deleted file mode 100644
index e69de29bb..000000000
diff --git a/app/(pages)/judges/(app)/_components/JudgingHub/JudgingList.module.scss b/app/(pages)/judges/(app)/_components/JudgingHub/JudgingList.module.scss
deleted file mode 100644
index dc8f3a8d9..000000000
--- a/app/(pages)/judges/(app)/_components/JudgingHub/JudgingList.module.scss
+++ /dev/null
@@ -1,65 +0,0 @@
-.container {
- width: 100%;
- padding: 40px 0px;
- display: flex;
- flex-direction: column;
- background-color: #f2f2f7;
-
- .top_text {
- display: flex;
- flex-direction: column;
- gap: 8px;
- padding: 0px 17px;
- display: flex;
- flex-direction: column;
-
- > h3 {
- font-weight: 700;
- font-size: 1.7rem;
- text-align: center;
- }
-
- span {
- font-weight: 600;
- }
-
- .options {
- background-color: #f2f2f7;
- text-align: center;
-
- .box {
- border-radius: 20px;
- background-color: white;
- padding: 5%;
- margin: 15px;
- font-size: 1.5rem;
- box-shadow: 0px 4px 8px 4px rgba(195, 194, 194, 0.08);
- }
- }
- }
-
- .projects_button {
- display: flex;
- width: 70%;
- height: 43px;
- // padding: 11.623px 112.594px 11.623px 104.846px;
- flex-direction: row;
- align-items: center;
- justify-content: center;
- gap: 9.686px;
- border-radius: 15.497px;
- background: #FFC53D;
- box-shadow: 0px 3.874px 61.987px 0px rgba(255, 197, 61, 0.16);
- border: none;
- align-self: center;
-
- color: #173A52;
- text-align: center;
- font-family: "Proxima Nova";
- font-size: 16px;
- font-style: normal;
- font-weight: 600;
- line-height: normal;
- letter-spacing: 0.32px;
- }
-}
\ No newline at end of file
diff --git a/app/(pages)/judges/(app)/_components/JudgingHub/JudgingList.tsx b/app/(pages)/judges/(app)/_components/JudgingHub/JudgingList.tsx
deleted file mode 100644
index ad6e7412f..000000000
--- a/app/(pages)/judges/(app)/_components/JudgingHub/JudgingList.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import styles from './JudgingList.module.scss';
-
-export default function JudgingList() {
- return (
-
-
-
While you're waiting, feel free to...
-
-
๐ Charge your phone!
-
๐ Say hi to other judges!
-
๐ฟ Grab a snack and water!
-
-
-
- );
-}
diff --git a/app/(pages)/judges/(app)/_components/JudgingHub/TableLocations.module.scss b/app/(pages)/judges/(app)/_components/JudgingHub/TableLocations.module.scss
deleted file mode 100644
index 13547231a..000000000
--- a/app/(pages)/judges/(app)/_components/JudgingHub/TableLocations.module.scss
+++ /dev/null
@@ -1,67 +0,0 @@
-.container {
- display: flex;
- justify-content: center;
- align-items: center;
- flex-direction: column;
- background: #f2f2f7;
- width: 100%;
- height: fit-content;
- padding-left: 7%;
- padding-right: 7%;
- padding-bottom: 10%;
- position: relative;
- overflow: hidden;
-
- .header {
- color: black;
- font-family: "Proxima Nova";
- font-size: 1.5rem;
- font-style: normal;
- line-height: 1.2;
- letter-spacing: 0.36px;
- padding-bottom: 20px;
- // font-weight: 500;
- text-align: left;
- }
- .map {
- width: 90%;
- height: 100%;
- border: 1px solid #000;
- background: #000;
- padding: 10%;
- }
-
- .vinyl {
- animation: spin 6s linear infinite;
- z-index: 1;
- position: absolute;
- height: auto;
- width: auto;
- // width: 55%;
- }
-
- .bunny_hand {
- position: absolute;
- overflow: hidden;
- bottom: -10px;
- width: auto;
- right: 23%;
- height: auto;
- z-index: 1; /* If necessary */
- }
-
- .vinyl_player {
- margin-top: 5%;
- position: relative;
- }
-
- @keyframes spin {
- from {
- transform: rotate(0deg);
- }
- to {
- transform: rotate(360deg);
- }
- }
-
-}
\ No newline at end of file
diff --git a/app/(pages)/judges/(app)/_components/JudgingHub/TableLocations.tsx b/app/(pages)/judges/(app)/_components/JudgingHub/TableLocations.tsx
deleted file mode 100644
index fc550b38f..000000000
--- a/app/(pages)/judges/(app)/_components/JudgingHub/TableLocations.tsx
+++ /dev/null
@@ -1,45 +0,0 @@
-import styles from './TableLocations.module.scss';
-import Image from 'next/image';
-import vinyl from '/public/judges/hub/vinyl.svg';
-import bunnyHand from '/public/judges/hub/bunny-hand.svg';
-import vinylPlayer from '/public/judges/hub/vinyl-player.svg';
-export default function TableLocations() {
- /* const logOutStyle = {
- zIndex: 1,
- borderRadius: '15.497px',
- background: '#9EE7E5',
- boxShadow: '0px 3.874px 61.987px 0px rgba(255, 197, 61, 0.16)',
- color: '#173A52',
- textAlign: 'center',
- fontSize: '16px',
- fontStyle: 'normal',
- fontWeight: 600,
- lineHeight: 'normal',
- letterSpacing: '0.32px',
- width: '90%',
- height: '43px',
- border: 'none',
- alignSelf: 'center',
- marginTop: '64px',
- };
- const figmaLink =
- 'https://www.figma.com/proto/9frZI5Kc9f2c8o4ZIZG8fX/Judging-Table-Map?page-id=0:1&type=design&node-id=1-4&viewport=134,164,0.69&t=Jfp4HXeR7nRs3B6R-1&scaling=min-zoom&mode=design';
- */
- return (
-
-
- If you have any questions, please ask a HackDavis director (bright white
- shirt)!
-
-
-
-
-
-
-
- );
-}
diff --git a/app/(pages)/judges/(app)/_components/JudgingHub/TableLocationsHacker.tsx b/app/(pages)/judges/(app)/_components/JudgingHub/TableLocationsHacker.tsx
deleted file mode 100644
index 40e7fd7f2..000000000
--- a/app/(pages)/judges/(app)/_components/JudgingHub/TableLocationsHacker.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import styles from './TableLocations.module.scss';
-import Link from 'next/link';
-export default function TableLocations() {
- const figmaLink =
- 'https://www.figma.com/proto/9frZI5Kc9f2c8o4ZIZG8fX/Judging-Table-Map?page-id=0:1&type=design&node-id=1-4&viewport=134,164,0.69&t=Jfp4HXeR7nRs3B6R-1&scaling=min-zoom&mode=design';
-
- return (
-
-
-
Click Here for Table Map
-
-
- );
-}
diff --git a/app/(pages)/judges/(app)/_components/JudgingHub/Waiting.tsx b/app/(pages)/judges/(app)/_components/JudgingHub/Waiting.tsx
deleted file mode 100644
index 4f4f8bb75..000000000
--- a/app/(pages)/judges/(app)/_components/JudgingHub/Waiting.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-const tips = [
- '๐ Charge your phone!',
- '๐ Say hi to other judges!',
- '๐ฟ Grab a snack and water!',
-];
-
-const TipCard = (tip: string) => {
- return (
-
- {tip}
-
- );
-};
-
-export default function Waiting() {
- return (
-
-
- While you're waiting, feel free to...
-
-
- {tips.map((tip, index) => (
-
{TipCard(tip)}
- ))}
-
-
- );
-}
diff --git a/app/(pages)/judges/(app)/_components/Landing/JudgeHero.tsx b/app/(pages)/judges/(app)/_components/Landing/JudgeHero.tsx
new file mode 100644
index 000000000..9d4469bca
--- /dev/null
+++ b/app/(pages)/judges/(app)/_components/Landing/JudgeHero.tsx
@@ -0,0 +1,77 @@
+'use client';
+
+import Image from 'next/image';
+
+import green from '@public/judges/landing/just_green.svg';
+import froggy from '@public/judges/landing/peeking_froggie.svg';
+import pink from '@public/judges/landing/pink.svg';
+import yellow from '@public/judges/landing/yellow.svg';
+
+import pink_circle from '@public/judges/landing/pink_cirlces.svg';
+import blue_flower from '@public/judges/landing/blue_flower.svg';
+
+import { Button } from '@pages/_globals/components/ui/button';
+import useActiveUser from '@pages/_hooks/useActiveUser';
+
+export default function JudgeHero() {
+ const { user } = useActiveUser('/judges/login');
+ const judgeName = user?.name?.split(' ')[0] ?? 'Judge';
+
+ return (
+
+
+
+
+
+
+
+
Welcome {judgeName},
+
+ We appreciate you for helping us judge one of Californiaโs biggest
+ hackathons!
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/app/(pages)/judges/(app)/_components/JudgingHub/JudgingHub.tsx b/app/(pages)/judges/(app)/_components/Landing/JudgingLanding.tsx
similarity index 65%
rename from app/(pages)/judges/(app)/_components/JudgingHub/JudgingHub.tsx
rename to app/(pages)/judges/(app)/_components/Landing/JudgingLanding.tsx
index 867c2bc35..1537fcf0e 100644
--- a/app/(pages)/judges/(app)/_components/JudgingHub/JudgingHub.tsx
+++ b/app/(pages)/judges/(app)/_components/Landing/JudgingLanding.tsx
@@ -1,26 +1,24 @@
'use client';
-import HubHero from './HubHero';
-import TableLocations from './TableLocations';
+import JudgeHero from './JudgeHero';
+import Questions from './Questions';
import ViewProjects from './ViewProjects';
-import styles from './JudgingHub.module.scss';
import Waiting from './Waiting';
import PanelsAreLive from './PanelsAreLive';
-// import Dismiss from './Dismiss';
import ClientTimeProtectedDisplay from '@pages/_components/TimeProtectedDisplay/ClientTimeProtectedDisplay';
-export default function JudgingHub() {
+export default function JudgingLanding() {
return (
-
+
);
}
diff --git a/app/(pages)/judges/(app)/_components/JudgingHub/PanelsAreLive.tsx b/app/(pages)/judges/(app)/_components/Landing/PanelsAreLive.tsx
similarity index 100%
rename from app/(pages)/judges/(app)/_components/JudgingHub/PanelsAreLive.tsx
rename to app/(pages)/judges/(app)/_components/Landing/PanelsAreLive.tsx
diff --git a/app/(pages)/judges/(app)/_components/Landing/Questions.tsx b/app/(pages)/judges/(app)/_components/Landing/Questions.tsx
new file mode 100644
index 000000000..540c2106d
--- /dev/null
+++ b/app/(pages)/judges/(app)/_components/Landing/Questions.tsx
@@ -0,0 +1,18 @@
+import Image from 'next/image';
+import mascots_around_couch from '@public/judges/landing/mascots_around_couch.svg';
+
+export default function Questions() {
+ return (
+
+
Question?
+
+ Please ask a HackDavis director (dark blue shirt)!
+
+
+
+ );
+}
diff --git a/app/(pages)/judges/(app)/_components/JudgingHub/ViewProjects.module.scss b/app/(pages)/judges/(app)/_components/Landing/ViewProjects.module.scss
similarity index 100%
rename from app/(pages)/judges/(app)/_components/JudgingHub/ViewProjects.module.scss
rename to app/(pages)/judges/(app)/_components/Landing/ViewProjects.module.scss
diff --git a/app/(pages)/judges/(app)/_components/JudgingHub/ViewProjects.tsx b/app/(pages)/judges/(app)/_components/Landing/ViewProjects.tsx
similarity index 100%
rename from app/(pages)/judges/(app)/_components/JudgingHub/ViewProjects.tsx
rename to app/(pages)/judges/(app)/_components/Landing/ViewProjects.tsx
diff --git a/app/(pages)/judges/(app)/_components/Landing/Waiting.tsx b/app/(pages)/judges/(app)/_components/Landing/Waiting.tsx
new file mode 100644
index 000000000..ecd73b7fa
--- /dev/null
+++ b/app/(pages)/judges/(app)/_components/Landing/Waiting.tsx
@@ -0,0 +1,124 @@
+import charge_phone from '@public/judges/landing/charge_phone.svg';
+import say_hi from '@public/judges/landing/say_hi.svg';
+import snack from '@public/judges/landing/snack.svg';
+import { useState, useRef, useEffect } from 'react';
+import Image from 'next/image';
+import arrow from '@public/judges/landing/arrow.svg';
+import type { StaticImageData } from 'next/image';
+
+import dark_circle from '@public/judges/landing/dark_circle.svg';
+import light_circle from '@public/judges/landing/light_circle.svg';
+
+interface Card {
+ src: StaticImageData;
+ title: string;
+ desc: string;
+ linkMap: boolean;
+}
+
+function Card({ card }: { card: Card }) {
+ return (
+
+
+
+
{card.title}
+
{card.desc}
+
+ {card.linkMap ? (
+
+
+
+
+ ) : null}
+
+
+ );
+}
+
+export default function Waiting() {
+ const [activeCardIndex, setActiveCardIndex] = useState(0);
+ const cardsContainerRef = useRef
(null);
+
+ const cards = [
+ {
+ src: charge_phone,
+ title: 'Charge your phone',
+ desc: 'Feel free to charge your phone.',
+ linkMap: false,
+ },
+ {
+ src: snack,
+ title: 'Grab a snack and water',
+ desc: 'Feel free to re-energize as you wait for our hackers',
+ linkMap: true,
+ },
+ {
+ src: say_hi,
+ title: 'Say hi to other judges',
+ desc: 'Get comfy and meet other Judges.',
+ linkMap: false,
+ },
+ ];
+
+ const handleCardsScroll = (event: React.UIEvent) => {
+ const container = event.currentTarget;
+ const cardWidth = container.clientWidth + 10;
+ const nextIndex = Math.round(container.scrollLeft / cardWidth);
+
+ setActiveCardIndex(Math.max(0, Math.min(cards.length - 1, nextIndex)));
+ };
+
+ useEffect(() => {
+ const intervalId = window.setInterval(() => {
+ const container = cardsContainerRef.current;
+ if (!container || cards.length === 0) return;
+
+ const firstCard = container.firstElementChild as HTMLElement | null;
+ if (!firstCard) return;
+
+ const styles = window.getComputedStyle(container);
+ const gap = parseFloat(styles.gap || '0');
+ const cardWidth = firstCard.offsetWidth + gap;
+
+ setActiveCardIndex((prevIndex) => {
+ const nextIndex = (prevIndex + 1) % cards.length;
+ container.scrollTo({
+ left: cardWidth * nextIndex,
+ behavior: 'smooth',
+ });
+ return nextIndex;
+ });
+ }, 10000);
+
+ return () => window.clearInterval(intervalId);
+ }, [cards.length]);
+
+ return (
+
+
+ While you are waiting...
+
+
+ {cards.map((card, index) => (
+
+ ))}
+
+
+ {cards.map((_, index) => (
+
+ ))}
+
+
+ );
+}
diff --git a/app/(pages)/judges/(app)/map/_components/Map/Map.module.scss b/app/(pages)/judges/(app)/map/_components/Map/Map.module.scss
deleted file mode 100644
index c4a08e22c..000000000
--- a/app/(pages)/judges/(app)/map/_components/Map/Map.module.scss
+++ /dev/null
@@ -1,29 +0,0 @@
-.container {
- display: flex;
- justify-content: center;
- align-items: center;
- flex-direction: column;
- gap: 10px;
- background: #005271;
- width: 100%;
-
- height: fit-content;
- padding: 10% 17px 60px 17px;
-
- .header {
- color: #FFF;
- font-family: "Proxima Nova";
- font-size: 18px;
- font-style: normal;
- font-weight: 700;
- line-height: normal;
- letter-spacing: 0.36px;
- }
- .map {
- width: 90%;
- height: 100%;
- border: 1px solid #000;
- background: #000;
- padding: 10%;
- }
-}
\ No newline at end of file
diff --git a/app/(pages)/judges/(app)/map/_components/Map/Map.tsx b/app/(pages)/judges/(app)/map/_components/Map/Map.tsx
deleted file mode 100644
index 548b4be92..000000000
--- a/app/(pages)/judges/(app)/map/_components/Map/Map.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-import styles from './Map.module.scss';
-import Image from 'next/image';
-import Link from 'next/link';
-import backArrow from '/public/judges/hub/back-arrow.svg';
-
-import map from 'public/judges/hub/map.png';
-export default function Map() {
- return (
-
-
-
-
-
-
Go Back
-
-
-
-
- );
-}
diff --git a/app/(pages)/judges/(app)/map/page.tsx b/app/(pages)/judges/(app)/map/page.tsx
deleted file mode 100644
index 840d5895f..000000000
--- a/app/(pages)/judges/(app)/map/page.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-import Map from './_components/Map/Map';
-
-export default function VenueMap() {
- return ;
-}
diff --git a/app/(pages)/judges/(app)/page.tsx b/app/(pages)/judges/(app)/page.tsx
index fa3bd3304..1d33ab007 100644
--- a/app/(pages)/judges/(app)/page.tsx
+++ b/app/(pages)/judges/(app)/page.tsx
@@ -4,7 +4,7 @@ import { useState, FormEvent } from 'react';
import { useRouter } from 'next/navigation';
import LogoutAction from '@actions/auth/logout';
-import JudgingHub from './_components/JudgingHub/JudgingHub';
+import JudgingLanding from './_components/Landing/JudgingLanding';
export default function Judges() {
const router = useRouter();
@@ -23,17 +23,17 @@ export default function Judges() {
};
return (
- <>
-
-