diff --git a/src/app/(signage)/signage/cif/page.tsx b/src/app/(signage)/cif/page.tsx similarity index 100% rename from src/app/(signage)/signage/cif/page.tsx rename to src/app/(signage)/cif/page.tsx diff --git a/src/app/(signage)/grainger/page.tsx b/src/app/(signage)/grainger/page.tsx new file mode 100644 index 0000000..a426516 --- /dev/null +++ b/src/app/(signage)/grainger/page.tsx @@ -0,0 +1,145 @@ +"use client"; +import { useEffect, useState } from "react"; +import { motion, useAnimate } from "framer-motion"; +import Countdown from "@/components/Countdown"; +import LogoReveal from "@/components/LogoReveal"; + +async function seqFromRight(scope: any, animate: any, delay: number = 0) { + await animate(scope.current, { + translateX: "2rem", + }, { + duration: 0.0 + }); + await new Promise(resolve => setTimeout(resolve, delay)); + await animate(scope.current, { + translateX: "0%", + }, { + duration: 0.2 + }); +} + +async function seqFadeIn(scope: any, animate: any, delay: number = 0) { + await animate(scope.current, { + opacity: 0, + }, { + duration: 0.0 + }); + await new Promise(resolve => setTimeout(resolve, delay)); + await animate(scope.current, { + opacity: 1, + }, { + duration: 0.2 + }); +} + +export default function SignagePage() { + const time_start = "2023-09-23T12:00:00-05:00" + const time_close = "2023-09-23T18:00:00-05:00" + const [loaded, setLoaded] = useState(false); + const [scopeHeader, animateScopeHeader] = useAnimate(); + const [scopeTimer, animateScopeTimer] = useAnimate(); + const [scopeBody, animateScopeBody] = useAnimate(); + const [scopeDetails, animateScopeDetails] = useAnimate(); + useEffect(() => { + setTimeout(() => { + setLoaded(true); + seqFromRight(scopeHeader, animateScopeHeader, 300); + seqFadeIn(scopeHeader, animateScopeHeader, 300); + seqFadeIn(scopeBody, animateScopeBody, 500); + seqFadeIn(scopeTimer, animateScopeTimer, 1000); + seqFadeIn(scopeDetails, animateScopeDetails, 1000); + }, 4000); + // Automatically refresh the page + setTimeout(() => { + location.reload(); + }, 1000 * 120); + }, []); + + return ( + +
+
+ +

+ SIGPwny Presents +

+
+ + + +
+ + + +
+ +
+

+ A beginner-friendly
hacking competition. +

+

+ Register at sigpwny.com/fallctf. +

+
+
+ https://sigpwny.com/fallctf +
+
+ + +

+ September 23rd, 12–6 PM +

+

+ CIF 3039 +

+
+ +

+ September 23rd, 12–6 PM @ CIF 3039 +

+
+
+
+ ); +}; diff --git a/src/app/(signage)/siebel/page.tsx b/src/app/(signage)/siebel/page.tsx new file mode 100644 index 0000000..a426516 --- /dev/null +++ b/src/app/(signage)/siebel/page.tsx @@ -0,0 +1,145 @@ +"use client"; +import { useEffect, useState } from "react"; +import { motion, useAnimate } from "framer-motion"; +import Countdown from "@/components/Countdown"; +import LogoReveal from "@/components/LogoReveal"; + +async function seqFromRight(scope: any, animate: any, delay: number = 0) { + await animate(scope.current, { + translateX: "2rem", + }, { + duration: 0.0 + }); + await new Promise(resolve => setTimeout(resolve, delay)); + await animate(scope.current, { + translateX: "0%", + }, { + duration: 0.2 + }); +} + +async function seqFadeIn(scope: any, animate: any, delay: number = 0) { + await animate(scope.current, { + opacity: 0, + }, { + duration: 0.0 + }); + await new Promise(resolve => setTimeout(resolve, delay)); + await animate(scope.current, { + opacity: 1, + }, { + duration: 0.2 + }); +} + +export default function SignagePage() { + const time_start = "2023-09-23T12:00:00-05:00" + const time_close = "2023-09-23T18:00:00-05:00" + const [loaded, setLoaded] = useState(false); + const [scopeHeader, animateScopeHeader] = useAnimate(); + const [scopeTimer, animateScopeTimer] = useAnimate(); + const [scopeBody, animateScopeBody] = useAnimate(); + const [scopeDetails, animateScopeDetails] = useAnimate(); + useEffect(() => { + setTimeout(() => { + setLoaded(true); + seqFromRight(scopeHeader, animateScopeHeader, 300); + seqFadeIn(scopeHeader, animateScopeHeader, 300); + seqFadeIn(scopeBody, animateScopeBody, 500); + seqFadeIn(scopeTimer, animateScopeTimer, 1000); + seqFadeIn(scopeDetails, animateScopeDetails, 1000); + }, 4000); + // Automatically refresh the page + setTimeout(() => { + location.reload(); + }, 1000 * 120); + }, []); + + return ( + +
+
+ +

+ SIGPwny Presents +

+
+ + + +
+ + + +
+ +
+

+ A beginner-friendly
hacking competition. +

+

+ Register at sigpwny.com/fallctf. +

+
+
+ https://sigpwny.com/fallctf +
+
+ + +

+ September 23rd, 12–6 PM +

+

+ CIF 3039 +

+
+ +

+ September 23rd, 12–6 PM @ CIF 3039 +

+
+
+
+ ); +};