22import { motion } from "framer-motion" ;
33import {
44 Calendar ,
5- Clock ,
65 Gamepad2 ,
7- Handshake ,
86 Heart ,
97 Home ,
10- Link as LucideLink ,
118 Map ,
129 Palette ,
13- Pencil ,
1410 Sparkles ,
15- Upload ,
1611 Users ,
1712} from "lucide-react" ;
1813import Image from "next/image" ;
@@ -23,15 +18,19 @@ import { useRef } from "react";
2318import LinksList from "@/components/ui/LinksList" ;
2419import NetworkCanvas from "@/components/ui/NetworkCanvas" ;
2520import SocialIconButton from "@/components/ui/SocialIconButton" ;
26- import { social_media } from "@/gamedev-metadata.json" ;
2721
2822export interface ListLink {
2923 label : string ;
3024 href : string ;
3125 icon : ReactNode ;
3226}
3327
34- const quickLinks : ListLink [ ] = [
28+ type socialMedia = {
29+ url : string ;
30+ alt_text : string ;
31+ } ;
32+
33+ /*const quickLinks: ListLink[] = [
3534 {
3635 label: "Join the Club",
3736 href: "#",
@@ -44,7 +43,7 @@ const quickLinks: ListLink[] = [
4443 },
4544 { label: "Upcoming Jams", href: "#", icon: <Clock className="h-4 w-4" /> },
4645 { label: "Resources", href: "#", icon: <Pencil className="h-4 w-4" /> },
47- ] ;
46+ ];*/
4847
4948// Main navigation links (ideally should be shared with Navbar)
5049export const mainLinks : ListLink [ ] = [
@@ -67,6 +66,25 @@ export const mainLinks: ListLink[] = [
6766 } ,
6867] ;
6968
69+ const socialMedia : socialMedia [ ] = [
70+ {
71+ url : "https://www.facebook.com/people/Game-Development-UWA/61576948012356/" ,
72+ alt_text : "Facebook" ,
73+ } ,
74+ {
75+ url : "https://discord.com/invite/JvnuVyMUff" ,
76+ alt_text : "Discord" ,
77+ } ,
78+ {
79+ url : "https://www.instagram.com/gamedevelopmentuwa" ,
80+ alt_text : "Instagram" ,
81+ } ,
82+ {
83+ url : "https://game-development-uwa.itch.io/" ,
84+ alt_text : "Itch.io" ,
85+ } ,
86+ ] ;
87+
7088export default function Footer ( ) {
7189 const footerRef = useRef < HTMLElement | null > ( null ) ;
7290 return (
@@ -77,7 +95,7 @@ export default function Footer() {
7795 >
7896 < div className = "relative z-10 border-t border-purple-500/20" >
7997 < div className = "container mx-auto px-4 py-12 sm:px-6 lg:px-8" >
80- < div className = "mb-12 grid grid-cols-1 gap-8 lg:grid-cols-3 " >
98+ < div className = "mb-12 grid grid-cols-1 gap-8 lg:grid-cols-2 " >
8199 < div className = "space-y-4 lg:col-span-1" >
82100 < div className = "group flex items-center gap-4" >
83101 < motion . div
@@ -110,22 +128,18 @@ export default function Footer() {
110128 Game Development
111129 </ h3 >
112130 < p className = "font-jersey10 text-lg text-gray-400" >
113- Create • Play • Inspire
131+ Design • Create • Play
114132 </ p >
115133 </ div >
116134 </ div >
117- < a
118- href = "mailto:UWAgamedev@gmail.com"
119- className = "block font-jersey10 text-xl text-gray-300 transition-colors hover:text-purple-400"
120- >
121- UWAgamedev@gmail.com
135+ < a className = "block font-jersey10 text-xl text-gray-300 transition-colors hover:text-purple-400" >
136+ Email coming soon!
122137 </ a >
123138 < p className = "font-jersey10 text-xl leading-relaxed text-gray-300/80" >
124- Building the next generation of game developers at UWA game
125- development club
139+ Building the next generation of game developers!
126140 </ p >
127141 < div className = "flex gap-3 pt-2" >
128- { social_media . map ( ( data ) => (
142+ { socialMedia . map ( ( data ) => (
129143 < SocialIconButton
130144 key = { data . alt_text }
131145 url = { data . url }
@@ -134,16 +148,13 @@ export default function Footer() {
134148 ) ) }
135149 </ div >
136150 </ div >
137- < LinksList
138- title = "Quick Links"
139- titleIcon = { < LucideLink className = "h-4 w-4 text-accent" /> }
140- links = { quickLinks }
141- />
142- < LinksList
143- title = "Explore"
144- titleIcon = { < Map className = "h-4 w-4 text-purple-400" /> }
145- links = { mainLinks }
146- />
151+ < div className = "justify-center lg:flex" >
152+ < LinksList
153+ title = "Explore"
154+ titleIcon = { < Map className = "h-4 w-4 text-purple-400" /> }
155+ links = { mainLinks }
156+ />
157+ </ div >
147158 </ div >
148159 < div className = "relative my-8" >
149160 < div className = "absolute inset-0 flex items-center" >
@@ -156,30 +167,36 @@ export default function Footer() {
156167 </ div >
157168 </ div >
158169 < div className = "flex flex-col items-center justify-between gap-4 sm:flex-row" >
159- < div className = "flex items-center gap-2 font-jersey10 text-xl text-gray-400" >
160- < span > © { new Date ( ) . getFullYear ( ) } CFC Game Dev</ span >
161- < span className = "text-purple-500" > •</ span >
162- < span > All rights reserved</ span >
170+ < div className = "flex items-center gap-2 font-jersey10 text-xl text-gray-400 sm:w-48 lg:w-80" >
171+ < div >
172+ © { new Date ( ) . getFullYear ( ) } CFC ~ GDUWA
173+ < span className = "mx-2 text-purple-500" > •</ span >
174+ All rights reserved
175+ </ div >
163176 </ div >
164- < Link
165- href = ""
166- className = "group flex -translate-x-[52px] items-center gap-2.5 rounded-full border border-purple-500/20 bg-gradient-to-r from-purple-500/10 to-pink-500/10 px-4 py-2 transition-all duration-300 hover:border-purple-500/40 hover:shadow-lg hover:shadow-purple-500/20"
167- onClick = { ( ) => window . open ( "/Constitution-V1.pdf" ) }
168- >
169- < span className = "font-jersey10 text-xl text-gray-300 transition-colors group-hover:text-white" >
170- Constitution
171- </ span >
172- </ Link >
173- < div className = "flex items-center gap-2 font-jersey10 text-xl text-gray-400" >
174- Made with
175- < motion . div
176- animate = { { scale : [ 1 , 1.2 , 1 ] } }
177- transition = { { duration : 1.5 , repeat : Infinity } }
177+ < div className = "flex justify-center sm:w-48 lg:w-80" >
178+ < Link
179+ href = ""
180+ className = "group flex w-fit items-center gap-2.5 rounded-full border border-purple-500/20 bg-gradient-to-r from-purple-500/10 to-pink-500/10 px-4 py-2 transition-all duration-300 hover:border-purple-500/40 hover:shadow-lg hover:shadow-purple-500/20"
181+ onClick = { ( ) => window . open ( "/Constitution-V1.pdf" ) }
178182 >
179- < Heart className = "h-4 w-4 fill-current text-red-500" />
180- </ motion . div >
181- in Perth, UWA
183+ < div className = "font-jersey10 text-xl text-gray-300 transition-colors group-hover:text-white" >
184+ Constitution
185+ </ div >
186+ </ Link >
182187 </ div >
188+ < span className = "flex items-center justify-end gap-2 font-jersey10 text-xl text-gray-400 sm:w-48 lg:w-80" >
189+ < pre className = "gap-2 font-jersey10 text-xl" >
190+ Made with
191+ < motion . span
192+ animate = { { scale : [ 1 , 1.2 , 1 ] } }
193+ transition = { { duration : 1.5 , repeat : Infinity } }
194+ >
195+ < Heart className = "mx-2 inline h-4 w-4 fill-current text-red-500" />
196+ </ motion . span >
197+ in UWA, Perth
198+ </ pre >
199+ </ span >
183200 </ div >
184201 </ div >
185202 </ div >
0 commit comments