From 29d251459a4250483c32796de6c6b2620f77001b Mon Sep 17 00:00:00 2001 From: nomi-nonsz Date: Thu, 25 Dec 2025 16:53:09 +0700 Subject: [PATCH] Add christmas events --- package-lock.json | 16 ++- package.json | 2 +- public/images/event_santahat01.png | Bin 0 -> 56454 bytes src/app/page.tsx | 2 + src/components/events/christmas.tsx | 168 +++++++++++++++++++++++++++ src/components/events/eventprops.tsx | 1 + src/components/windows.tsx | 21 ++-- src/lib/types.ts | 5 + src/lib/utils.ts | 25 +++- yarn.lock | 14 +-- 10 files changed, 230 insertions(+), 24 deletions(-) create mode 100644 public/images/event_santahat01.png create mode 100644 src/components/events/christmas.tsx create mode 100644 src/components/events/eventprops.tsx create mode 100644 src/lib/types.ts diff --git a/package-lock.json b/package-lock.json index 15e1adc..1442629 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@next/mdx": "^15.3.4", "@types/mdx": "^2.0.13", "clsx": "^2.1.1", - "dayjs": "^1.11.13", + "date-fns": "^4.1.0", "next": "^14.2.35", "react": "^18", "react-dom": "^18" @@ -2112,11 +2112,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dayjs": { - "version": "1.11.19", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", - "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", - "license": "MIT" + "node_modules/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } }, "node_modules/debug": { "version": "4.4.0", diff --git a/package.json b/package.json index 94c2d49..17bae08 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "@next/mdx": "^15.3.4", "@types/mdx": "^2.0.13", "clsx": "^2.1.1", - "dayjs": "^1.11.13", + "date-fns": "^4.1.0", "next": "^14.2.35", "react": "^18", "react-dom": "^18" diff --git a/public/images/event_santahat01.png b/public/images/event_santahat01.png new file mode 100644 index 0000000000000000000000000000000000000000..02d94ec5d6f9ae9205889e216847bd4c3ac1da57 GIT binary patch literal 56454 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 XxDJ0er5-8__)F=&x_r5;S;+qbm7v7y literal 0 HcmV?d00001 diff --git a/src/app/page.tsx b/src/app/page.tsx index c10287f..5fb1c82 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -6,10 +6,12 @@ import HomeText from "@/components/texts/home.mdx" import Link from "@/components/link"; import { FakeWindow, HomeWindows } from "@/components/windows"; import { WindowManagerProvider } from "@/hooks/window-manager"; +import { SnowfallBackground } from "@/components/events/christmas"; export default function Home() { return (<>
+ diff --git a/src/components/events/christmas.tsx b/src/components/events/christmas.tsx new file mode 100644 index 0000000..8104065 --- /dev/null +++ b/src/components/events/christmas.tsx @@ -0,0 +1,168 @@ +'use client' + +import { getEvent } from '@/lib/utils'; +import clsx from 'clsx'; +import Image from 'next/image'; +import { ReactNode, useEffect, useRef, useState } from 'react'; + +interface Snowflake { + x: number; + y: number; + radius: number; + speed: number; + sway: number; + swayOffset: number; + opacity: number; +} + +interface ChristmasProps { + left: number; + top: number; + size: number; + className?: string; + flip?: boolean; + absolute?: boolean; +} + +export const ChristmasExclusive = ({ children }: { children: ReactNode }) => { + const isItChristmas = getEvent()?.name == 'christmas'; + + if (isItChristmas) return children; + return null; +} + +export const ChristmasHat: React.FC = ({ + left, + top, + size, + className, + flip +}) => { + return ( + +
+ Santa Hat +
+
+ ) +} + +function SnowfallRawBackground() { + const canvasRef = useRef(null); + const [dimensions, setDimensions] = useState({ width: 0, height: 0 }); + const snowflakesRef = useRef([]); + const animationFrameRef = useRef(0); + + // Update dimensions on resize + useEffect(() => { + const updateDimensions = () => { + setDimensions({ + width: window.innerWidth, + height: window.innerHeight, + }); + }; + + updateDimensions(); + window.addEventListener('resize', updateDimensions); + + return () => window.removeEventListener('resize', updateDimensions); + }, []); + + useEffect(() => { + if (!canvasRef.current) return; + + const canvas = canvasRef.current; + const ctx = canvas.getContext('2d'); + if (!ctx) return; + + canvas.width = dimensions.width; + canvas.height = dimensions.height; + + const createSnowflake = (init?: boolean): Snowflake => { + let posy = -10; + let radius = Math.random() * 4 + 2; + let speed = Math.random() * 1 + 0.5; + let sway = Math.random() * 0.5 + 0.2; + + if (init) { + const initHeight = (dimensions.height / 1.1); + posy = Math.random() * initHeight + posy; + radius = (posy / (initHeight + posy) - 1) * -radius; + } + + if (window.innerWidth < 768) { + radius /= 1.4; + } + + return { + x: Math.random() * dimensions.width, + y: posy, + radius, + speed, + sway, + swayOffset: Math.random() * Math.PI * 2, + opacity: Math.random() * 0.5 + 0.5, + } + }; + + + const snowflakes: Snowflake[] = []; + for (let i = 0; i < 200; i++) { + snowflakes.push(createSnowflake(true)); + } + snowflakesRef.current = snowflakes; + + const animate = () => { + ctx.clearRect(0, 0, canvas.width, canvas.height); + + snowflakesRef.current.forEach((flake, index) => { + flake.y += flake.speed; + flake.x += Math.sin(flake.swayOffset + flake.y * 0.02) * flake.sway; + + const shrink = dimensions.height < 768 ? 0.001 : 0.005 + flake.radius = Math.max(0, flake.radius - shrink); + + if (flake.y > dimensions.height || flake.radius <= 0.5) { + snowflakesRef.current[index] = createSnowflake(); + return; + } + + ctx.beginPath(); + ctx.arc(flake.x, flake.y, flake.radius, 0, Math.PI * 2); + ctx.fillStyle = `rgba(255, 255, 255, ${flake.opacity})`; + ctx.fill(); + }); + + animationFrameRef.current = requestAnimationFrame(animate); + }; + + animationFrameRef.current = requestAnimationFrame(animate); + + return () => cancelAnimationFrame(animationFrameRef.current); + }, [dimensions]); + + return ( + + ); +} + +export const SnowfallBackground = () => ( + + + +) diff --git a/src/components/events/eventprops.tsx b/src/components/events/eventprops.tsx new file mode 100644 index 0000000..9ea6d64 --- /dev/null +++ b/src/components/events/eventprops.tsx @@ -0,0 +1 @@ +'use client' \ No newline at end of file diff --git a/src/components/windows.tsx b/src/components/windows.tsx index 17f86d5..b60c13c 100644 --- a/src/components/windows.tsx +++ b/src/components/windows.tsx @@ -3,6 +3,7 @@ import { FloatingLabel } from "@/components/floating-label"; import { FakeRelativeWindow, RestoreWindowsButton } from "./client-windows"; import Image from "next/image" import Link from "next/link"; +import { ChristmasHat } from "./events/christmas"; export const FakeWindow = ({ windowText, children @@ -10,7 +11,8 @@ export const FakeWindow = ({ windowText: string children: React.ReactNode }) => ( -
+
+
@@ -45,13 +47,16 @@ export const HomeWindows = () => ( draggable > - Nola +
+ + Nola +
{ + const today = new Date(Date.now()); + const year = today.getFullYear(); + + const start = new Date(year, e.start[0] - 1, e.start[1]); + const end = new Date(year, e.end[0] - 1, e.end[1]); + + return isWithinInterval(today, { start, end }) + }) +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index e49962f..0769835 100644 --- a/yarn.lock +++ b/yarn.lock @@ -320,10 +320,10 @@ dependencies: source-map "^0.7.0" -"@next/swc-linux-x64-gnu@14.2.33": +"@next/swc-win32-x64-msvc@14.2.33": version "14.2.33" - resolved "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.33.tgz" - integrity sha512-FnFn+ZBgsVMbGDsTqo8zsnRzydvsGV8vfiWwUo1LD8FTmPTdV+otGSWKc4LJec0oSexFnCYVO4hX8P8qQKaSlg== + resolved "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.33.tgz" + integrity sha512-nOjfZMy8B94MdisuzZo9/57xuFVLHJaDj5e/xrduJp9CV2/HrfxTRH2fbyLe+K9QT41WBLUd4iXX3R7jBp0EUg== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -1003,10 +1003,10 @@ data-view-byte-offset@^1.0.1: es-errors "^1.3.0" is-data-view "^1.0.1" -dayjs@^1.11.13: - version "1.11.19" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz" - integrity sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw== +date-fns@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz" + integrity sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg== debug@^3.2.7: version "3.2.7"