Skip to content
Merged

prod #372

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
174eef5
Begin easter egg to dynamically move the floating objects
CruidGals Sep 28, 2025
c6e5e36
Begin easter egg
CruidGals Sep 30, 2025
92e2fd8
new page
kensac Sep 29, 2025
cc36a68
we test in prod
kensac Sep 29, 2025
c1bb068
change ui
kensac Sep 29, 2025
524929c
change blue jellyfish asset
khai-ta Sep 21, 2025
faa1815
fix(deps): update nextjs monorepo to v15.5.4
renovate[bot] Sep 29, 2025
433b102
chore(deps): update dependency posthog-node to v5.9.2
renovate[bot] Sep 29, 2025
344dd3a
chore(deps): update dependency posthog-js to v1.268.8
renovate[bot] Sep 29, 2025
7d4eff9
chore(deps): update dependency lint-staged to v16.2.3
renovate[bot] Sep 29, 2025
47a0fa0
chore(deps): update dependency @tanstack/react-query to v5.90.2
renovate[bot] Sep 29, 2025
d1d9a3f
chore(deps): update dependency knip to v5.64.1
renovate[bot] Sep 29, 2025
93f32ee
chore(deps): update dependency framer-motion to v12.23.22
renovate[bot] Sep 30, 2025
8cd8389
Implement rotation of floaties in InfoSections.tsx
CruidGals Sep 30, 2025
8e2f9b0
Merge pull request #371 from Hack-PSU/easter_egg_kyle
joeboppell Oct 1, 2025
9740bd8
chore(deps): update dependency posthog-js to v1.268.9
renovate[bot] Oct 1, 2025
59a7f7f
chore(deps): update dependency typescript to v5.9.3
renovate[bot] Oct 1, 2025
dd08749
fix(deps): update dependency @types/react to v19.1.16
renovate[bot] Oct 1, 2025
da0f25d
chore(deps): update dependency @types/node to v24.6.1
renovate[bot] Oct 1, 2025
d95d9e7
Merge pull request #370 from Hack-PSU/renovate/typescript-5.x-lockfile
kensac Oct 1, 2025
091fcfd
Merge pull request #369 from Hack-PSU/renovate/posthog-js-1.x-lockfile
kensac Oct 1, 2025
9867ad4
Merge pull request #367 from Hack-PSU/renovate/node-24.x-lockfile
kensac Oct 1, 2025
5f910c8
Merge pull request #366 from Hack-PSU/renovate/react-monorepo
kensac Oct 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
"@tanstack/react-query": "^5.66.0",
"@types/luxon": "^3.3.2",
"@types/node": "^24.1.0",
"@types/react": "19.1.13",
"@types/react": "19.1.16",
"@types/react-dom": "19.1.9",
"@vercel/analytics": "^1.5.0",
"@vercel/speed-insights": "^1.2.0",
Expand Down
88 changes: 72 additions & 16 deletions src/components/InfoSections.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"use client";

import React, { useState, useEffect } from "react";
import { motion } from "framer-motion";
import { m, motion } from "framer-motion";
import Image from "next/image";
import { useFlagState } from "@/lib/api/flag/hook";

Expand Down Expand Up @@ -51,6 +51,11 @@ const InfoSections: React.FC = () => {
const [order, setOrder] = useState(SECTIONS);
const { data: statsSectionFlag } = useFlagState("StatsSectionEnabled");

// Easter egg; spinning the floaties
const [clicked1, setClicked1] = useState(false);
const [clicked2, setClicked2] = useState(false);
const [clicked3, setClicked3] = useState(false);

function rotateLeft(steps: number) {
setOrder((prev) => {
const k = steps % prev.length;
Expand All @@ -70,6 +75,7 @@ const InfoSections: React.FC = () => {
>
{/* Animated Float Elements */}
<motion.div
key={1}
className="absolute
left-[clamp(20px, 4vw, 80px)]
top-[clamp(100px, 15vw, 200px)]
Expand All @@ -79,17 +85,33 @@ const InfoSections: React.FC = () => {
width: "clamp(80px, 30vw, 400px)",
height: "clamp(80px, 30vw, 400px)",
}}
animate={{
rotate: [0, 15, 0],
y: [-130, -30, -130],
scale: [1, 0.9, 1],
}}
animate={
clicked1 ? {
rotate: [0, 360, 0], y: [-130, -30, -130], scale: [1, 0.9, 1],
transition: {
rotate: { duration: 1, ease: "easeInOut" }, // one-off spin
y: { duration: 5, repeat: Infinity, ease: "easeInOut", delay: 1 },
scale: { duration: 5, repeat: Infinity, ease: "easeInOut", delay: 1 },
}
} : {
rotate: [0, 15, 0], y: [-130, -30, -130], scale: [1, 0.9, 1],
transition: {
rotate : { duration: 5, repeat: Infinity, ease: "easeInOut", delay: 1 },
y: { duration: 5, repeat: Infinity, ease: "easeInOut", delay: 1 },
scale: { duration: 5, repeat: Infinity, ease: "easeInOut", delay: 1 },
}
}
}
transition={{
duration: 6,
repeat: Infinity,
ease: "easeInOut",
delay: 0,
}}
onClick={() => {
setClicked1(true)
setTimeout(() => setClicked1(false), 1000)
}}
>
<Image
src="/f25/f1.png"
Expand All @@ -100,24 +122,41 @@ const InfoSections: React.FC = () => {
</motion.div>

<motion.div
key={2}
className="absolute max-sm:hidden"
style={{
width: "clamp(80px, 30vw, 400px)",
height: "clamp(80px, 30vw, 400px)",
right: "clamp(20px, 4vw, 80px)",
top: "clamp(0px, 1vw, 100px)",
}}
animate={{
rotate: [0, 15, 0],
y: [0, -20, 0],
scale: [1, 0.8, 1],
}}
animate={
clicked2 ? {
rotate: [0, 360, 0], y: [0, -20, 0], scale: [1, 0.8, 1],
transition: {
rotate: { duration: 1, ease: "easeInOut" }, // one-off spin
y: { duration: 5, repeat: Infinity, ease: "easeInOut", delay: 1 },
scale: { duration: 5, repeat: Infinity, ease: "easeInOut", delay: 1 },
}
} : {
rotate: [0, 15, 0], y: [0, -20, 0], scale: [1, 0.8, 1],
transition: {
rotate : { duration: 5, repeat: Infinity, ease: "easeInOut", delay: 1 },
y: { duration: 5, repeat: Infinity, ease: "easeInOut", delay: 1 },
scale: { duration: 5, repeat: Infinity, ease: "easeInOut", delay: 1 },
}
}
}
transition={{
duration: 5,
repeat: Infinity,
ease: "easeInOut",
delay: 1,
}}
onClick={() => {
setClicked2(true)
setTimeout(() => setClicked2(false), 1000)
}}
>
<Image
src="/f25/f2.png"
Expand All @@ -128,6 +167,7 @@ const InfoSections: React.FC = () => {
</motion.div>

<motion.div
key={3}
className="absolute
right-[clamp(20px, 4vw, 80px)]
top-[clamp(100px, 15vw, 200px)]
Expand All @@ -137,17 +177,33 @@ const InfoSections: React.FC = () => {
width: "clamp(80px, 30vw, 300px)",
height: "clamp(80px, 30vw, 300px)",
}}
animate={{
rotate: [0, 15, 0],
y: [0, -20, 0],
scale: [1, 0.8, 1],
}}
animate={
clicked3 ? {
rotate: [0, 360, 0], y: [0, -20, 0], scale: [1, 0.8, 1],
transition: {
rotate: { duration: 1, ease: "easeInOut" }, // one-off spin
y: { duration: 5, repeat: Infinity, ease: "easeInOut", delay: 1 },
scale: { duration: 5, repeat: Infinity, ease: "easeInOut", delay: 1 },
}
} : {
rotate: [0, 15, 0], y: [0, -20, 0], scale: [1, 0.8, 1],
transition: {
rotate : { duration: 5, repeat: Infinity, ease: "easeInOut", delay: 1 },
y: { duration: 5, repeat: Infinity, ease: "easeInOut", delay: 1 },
scale: { duration: 5, repeat: Infinity, ease: "easeInOut", delay: 1 },
}
}
}
transition={{
duration: 6.67,
repeat: Infinity,
ease: "linear",
delay: 3,
}}
onClick={() => {
setClicked3(true)
setTimeout(() => setClicked3(false), 1000)
}}
>
<Image
src="/f25/f3.png"
Expand Down
41 changes: 18 additions & 23 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2178,11 +2178,6 @@
detect-libc "^2.0.4"
rimraf "^6.0.1"

"@posthog/core@1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@posthog/core/-/core-1.1.0.tgz#bf9e3fa76c6e05daad09eceb07b04c7e3b1b346a"
integrity sha512-igElrcnRPJh2nWYACschjH4OwGwzSa6xVFzRDVzpnjirUivdJ8nv4hE+H31nvwE56MFhvvglfHuotnWLMcRW7w==

"@posthog/core@1.2.2":
version "1.2.2"
resolved "https://registry.yarnpkg.com/@posthog/core/-/core-1.2.2.tgz#63382e2e208f501b2c22246ccaae55052f77ac1d"
Expand Down Expand Up @@ -2859,11 +2854,11 @@
integrity sha512-H3iskjFIAn5SlJU7OuxUmTEpebK6TKB8rxZShDslBMZJ5u9S//KM1sbdAisiSrqwLQncVjnpi2OK2J51h+4lsg==

"@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^24.1.0":
version "24.5.2"
resolved "https://registry.yarnpkg.com/@types/node/-/node-24.5.2.tgz#52ceb83f50fe0fcfdfbd2a9fab6db2e9e7ef6446"
integrity sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==
version "24.6.1"
resolved "https://registry.yarnpkg.com/@types/node/-/node-24.6.1.tgz#29cd365beb4419b3b8271c7464f1a563446d7481"
integrity sha512-ljvjjs3DNXummeIaooB4cLBKg2U6SPI6Hjra/9rRIy7CpM0HpLtG9HptkMKAb4HYWy5S7HUvJEuWgr/y0U8SHw==
dependencies:
undici-types "~7.12.0"
undici-types "~7.13.0"

"@types/parse-json@^4.0.0":
version "4.0.2"
Expand All @@ -2885,10 +2880,10 @@
resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.12.tgz#b5d76568485b02a307238270bfe96cb51ee2a044"
integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==

"@types/react@19.1.13":
version "19.1.13"
resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.13.tgz#fc650ffa680d739a25a530f5d7ebe00cdd771883"
integrity sha512-hHkbU/eoO3EG5/MZkuFSKmYqPbSVk5byPFa3e7y/8TybHiLMACgI8seVYlicwk7H5K/rI2px9xrQp/C+AUDTiQ==
"@types/react@19.1.16":
version "19.1.16"
resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.16.tgz#6329b1c17a5de624439eae673f86a2c5569a42be"
integrity sha512-WBM/nDbEZmDUORKnh5i1bTnAz6vTohUf9b8esSMu+b24+srbaxa04UbJgWx78CVfNXA20sNu0odEIluZDFdCog==
dependencies:
csstype "^3.0.2"

Expand Down Expand Up @@ -5680,9 +5675,9 @@ postcss@^8.4.47:
source-map-js "^1.2.1"

posthog-js@^1.257.0:
version "1.268.8"
resolved "https://registry.yarnpkg.com/posthog-js/-/posthog-js-1.268.8.tgz#2d2f77aa46a926fa43f93d14573a3087c0ecf956"
integrity sha512-BJiKK4MlUvs7ybnQcy1KkwAz+SZkE/wRLotetIoank5kbqZs8FLbeyozFvmmgx4aoMmaVymYBSmYphYjYQeidw==
version "1.268.9"
resolved "https://registry.yarnpkg.com/posthog-js/-/posthog-js-1.268.9.tgz#08cced88984b14353ca12f2a7313bdd40b3158f3"
integrity sha512-ejK5/i0TUQ8I1SzaIn7xWNf5TzOjWquawpgjKit8DyucD3Z1yf7LTMtgCYZN8oRx9VjiPcP34fSk8YsWQmmkTQ==
dependencies:
"@posthog/core" "1.2.2"
core-js "^3.38.1"
Expand Down Expand Up @@ -6646,9 +6641,9 @@ typed-array-length@^1.0.7:
reflect.getprototypeof "^1.0.6"

typescript@^5.9.2:
version "5.9.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.2.tgz#d93450cddec5154a2d5cabe3b8102b83316fb2a6"
integrity sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==
version "5.9.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f"
integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==

unbox-primitive@^1.1.0:
version "1.1.0"
Expand All @@ -6660,10 +6655,10 @@ unbox-primitive@^1.1.0:
has-symbols "^1.1.0"
which-boxed-primitive "^1.1.1"

undici-types@~7.12.0:
version "7.12.0"
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.12.0.tgz#15c5c7475c2a3ba30659529f5cdb4674b622fafb"
integrity sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==
undici-types@~7.13.0:
version "7.13.0"
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.13.0.tgz#a20ba7c0a2be0c97bd55c308069d29d167466bff"
integrity sha512-Ov2Rr9Sx+fRgagJ5AX0qvItZG/JKKoBRAVITs1zk7IqZGTJUwgUr7qoYBpWwakpWilTZFM98rG/AFRocu10iIQ==

unicode-canonical-property-names-ecmascript@^2.0.0:
version "2.0.1"
Expand Down