From 88b5aa2a17ab15f058725408d85b4dce962266bf Mon Sep 17 00:00:00 2001 From: techpixel <68567672+techpixel@users.noreply.github.com> Date: Fri, 16 Jan 2026 15:21:47 -0500 Subject: [PATCH] chore: bring astro up to date w/ frontend --- astro/src/components/pages/App.tsx | 66 +++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 2 deletions(-) diff --git a/astro/src/components/pages/App.tsx b/astro/src/components/pages/App.tsx index 460af8d..69e616e 100644 --- a/astro/src/components/pages/App.tsx +++ b/astro/src/components/pages/App.tsx @@ -12,19 +12,64 @@ import clsx from 'clsx'; const FORM_URL_ORGANIZER_APPLICATION = "https://forms.hackclub.com/t/8L51MzWyrHus"; const FORM_URL_RSVP = "https://forms.hackclub.com/t/a3QSt8MuvHus"; +function FlagshipCTA({ className, compact, maxWidth }: { className?: string; compact?: boolean; maxWidth?: boolean }) { + return ( +
+ + Campfire Flagship + + {compact ? "Join our flagship in LA with Open Sauce creators!" : "Come to our flagship event in Los Angeles with William Osman and Michael Reeves!"} + + +
+ ); +} + function App() { const [email, setEmail] = useState(""); const [scrollY, setScrollY] = useState(document.body.scrollTop); const [isLargeScreen, setIsLargeScreen] = useState(window.innerWidth >= 1280); + const [windowHeight, setWindowHeight] = useState(window.innerHeight); + const [windowWidth, setWindowWidth] = useState(window.innerWidth); const emailRef = useRef(null); useEffect(() => { + if (window.location.pathname === '/flagship') { + window.location.href = 'https://flagship.hackclub.com?utm_source=campfire_landing_page'; + return; + } + document.addEventListener("scroll", () => { setScrollY(window.scrollY); }); const handleResize = () => { setIsLargeScreen(window.innerWidth >= 1280); + setWindowHeight(window.innerHeight); + setWindowWidth(window.innerWidth); }; window.addEventListener("resize", handleResize); return () => window.removeEventListener("resize", handleResize); @@ -69,7 +114,10 @@ function App() { -
+
windowWidth && windowWidth < 860 ? "flex items-stretch pb-16" : "flex items-end pb-32 2xl:pb-48" + )}>
@@ -109,10 +157,24 @@ function App() { className="w-full h-full object-cover object-top select-none" /> + +
-
+
windowWidth && windowWidth < 860 && "justify-between h-full" + )}>
+ {windowWidth >= 400 && } +