11"use client" ;
22import React , { useState } from "react" ;
33import Calendar from "@/components/events/Calendar" ; // Adjust the import path if needed
4+ import EventCard from "@/components/events/EventCard" ;
5+ import { eventNames } from "process" ;
6+ import Image from "next/image" ;
47
58const EventPage = ( ) => {
69 // Get the current date to set default month and year
10+ const eventImage1 = "/assets/event-images/GBM-Spring-2025-1.svg" ;
11+ const eventImage2 = "/assets/event-images/GBM-Spring-2025-2.svg" ;
12+ const eventImage3 = "/assets/event-images/TOWN-HALL-2024-1.svg" ;
13+ const eventImage4 = "/assets/event-images/TOWN-HALL-2024-2.svg" ;
14+
715 const today = new Date ( ) ;
816 const [ month , setMonth ] = useState ( today . getMonth ( ) ) ;
917 const [ year , setYear ] = useState ( today . getFullYear ( ) ) ;
@@ -14,15 +22,173 @@ const EventPage = () => {
1422 setYear ( newDate . year ) ;
1523 } ;
1624
25+ const events = [
26+ {
27+ eventName : "GBM Spring 2025" ,
28+ image1 : eventImage1 ,
29+ image2 : eventImage2 ,
30+ } ,
31+ {
32+ eventName : "Town Hall Fall 2024" ,
33+ image1 : eventImage3 ,
34+ image2 : eventImage4 ,
35+ }
36+ ] ;
37+
38+
1739 return (
18- < div className = "h-fit w-full bg-[url(/assets/apply/apply-bg.png)] bg-cover bg-center py-20" >
19- < div className = "flex justify-between pt-16 md:mx-20" >
20- < Calendar month = { month } year = { year } onMonthChange = { handleMonthChange } />
40+ < div className = "relative overflow-hidden" >
41+ { /* Background Image */ }
42+ < div className = "h-fit w-full bg-[url(/assets/apply/apply-bg.png)] bg-cover bg-center py-20 px-4 md:px-20 relative" >
43+ < div className = "flex justify-between pt-16" >
44+ < Calendar month = { month } year = { year } onMonthChange = { handleMonthChange } />
45+ </ div >
46+
47+ < div className = "max-w-5xl mx-auto mt-10" >
48+ < h2 className = "text-3xl md:text-4xl font-bold text-center mb-8 text-white" > Previous Events</ h2 >
49+
50+ < div
51+ className = { `${
52+ events . length === 1 ? "flex justify-center" : "grid grid-cols-1 sm:grid-cols-2 gap-6"
53+ } `}
54+ >
55+ { events . map ( ( event , index ) => (
56+ < EventCard
57+ key = { index }
58+ eventName = { event . eventName }
59+ image1 = { event . image1 }
60+ image2 = { event . image2 }
61+ isSingle = { events . length === 1 }
62+ />
63+ ) ) }
64+ </ div >
65+ </ div >
66+ </ div >
67+
68+ < div className = "absolute top-20 right lg:right-24 transform blur-sm -translate-y-1/2 z-[-10] animate-pulse" >
69+ < Image
70+ src = "/assets/objects/crystal-2.png"
71+ alt = "Crystal Design Element"
72+ width = { 200 }
73+ height = { 200 }
74+ className = "opacity-70"
75+ />
76+ </ div >
77+
78+ < div className = "absolute top-[600px] lg:top-[700px] left-0 lg:left-20 rotate-45 blur-sm transform -translate-y-1/2 z-[-10] animate-pulse" >
79+ < Image
80+ src = "/assets/objects/crystal-1.png"
81+ alt = "Crystal Design Element"
82+ width = { 400 }
83+ height = { 400 }
84+ className = "opacity-80"
85+ />
86+ </ div >
87+
88+ < div className = "absolute top-[1200px] lg:top-[1100px] right-10 lg:right-40 transform blur-sm -translate-y-1/2 z-[-10] animate-pulse" >
89+ < Image
90+ src = "/assets/objects/crystal-2.png"
91+ alt = "Crystal Design Element"
92+ width = { 250 }
93+ height = { 250 }
94+ className = "opacity-70"
95+ />
96+ </ div >
97+
98+ < div className = "absolute top-[2400px] lg:top-[2200px] right-0 lg:right-40 -rotate-30 blur-sm transform -translate-y-1/2 z-[-10]" >
99+ < Image
100+ src = "/assets/objects/crystal-1.png"
101+ alt = "Crystal Design Element"
102+ width = { 450 }
103+ height = { 450 }
104+ className = "opacity-70"
105+ />
106+ </ div >
107+
108+ < div className = "absolute top-[3000px] lg:top-[2800px] left-10 lg:left-60 rotate-15 blur-sm transform -translate-y-1/2 z-[-10]" >
109+ < Image
110+ src = "/assets/objects/crystal-2.png"
111+ alt = "Crystal Design Element"
112+ width = { 300 }
113+ height = { 300 }
114+ className = "opacity-80"
115+ />
116+ </ div >
117+
118+ < div className = "absolute top-[3600px] lg:top-[3400px] right-10 lg:right-80 blur-sm transform -translate-y-1/2 z-[-10]" >
119+ < Image
120+ src = "/assets/objects/ufo.svg"
121+ alt = "UFO Element"
122+ width = { 300 }
123+ height = { 300 }
124+ className = "opacity-70"
125+ />
126+ </ div >
127+
128+ < div className = "absolute top-[4200px] lg:top-[4000px] left-0 lg:left-20 rotate-60 blur-sm transform -translate-y-1/2 z-[-10]" >
129+ < Image
130+ src = "/assets/objects/crystal-1.png"
131+ alt = "Crystal Design Element"
132+ width = { 400 }
133+ height = { 400 }
134+ className = "opacity-80"
135+ />
136+ </ div >
137+
138+ < div className = "absolute bottom -right-20 transform -translate-y-1/2 -rotate-12 z-[-10] max-h-screen overflow-hidden" >
139+ < Image
140+ src = "/assets/objects/web.png"
141+ alt = "Web Element"
142+ width = { 600 }
143+ height = { 600 }
144+ className = "opacity-70 object-contain"
145+ />
146+ </ div >
147+
148+ < div className = "absolute top-[1600px] left-10 lg:left-40 transform rotate-15 blur-sm -translate-y-1/2 z-[-10] animate-pulse" >
149+ < Image
150+ src = "/assets/objects/crystal-2.png"
151+ alt = "Crystal Design Element"
152+ width = { 180 }
153+ height = { 180 }
154+ className = "opacity-70"
155+ />
156+ </ div >
157+
158+ < div className = "absolute top-[2200px] right-20 lg:right-60 blur-sm transform -translate-y-1/2 z-[-10]" >
159+ < Image
160+ src = "/assets/objects/ufo.svg"
161+ alt = "UFO Element"
162+ width = { 200 }
163+ height = { 200 }
164+ className = "opacity-60"
165+ />
166+ </ div >
167+
168+ < div className = "absolute top-[2800px] left-20 lg:left-80 transform rotate-45 blur-sm -translate-y-1/2 z-[-10]" >
169+ < Image
170+ src = "/assets/objects/rocket-flame.svg"
171+ alt = "Rocket Element"
172+ width = { 180 }
173+ height = { 180 }
174+ className = "opacity-75"
175+ />
176+ </ div >
177+
178+ < div className = "absolute top-[3400px] right-30 lg:right-100 transform -rotate-30 blur-sm -translate-y-1/2 z-[-10] animate-pulse" >
179+ < Image
180+ src = "/assets/objects/crystal-1.png"
181+ alt = "Crystal Design Element"
182+ width = { 300 }
183+ height = { 300 }
184+ className = "opacity-70"
185+ />
21186 </ div >
22187 </ div >
23188 ) ;
24189} ;
25190
191+
26192function changeMonth (
27193 amt : "inc" | "dec" ,
28194 { month, year } : { month : number ; year : number }
0 commit comments