|
|
|
|
@@ -1,4 +1,5 @@
|
|
|
|
|
"use client";
|
|
|
|
|
import { useEffect, useRef } from 'react';
|
|
|
|
|
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
|
|
|
|
import HeroBillboardGallery from '@/components/sections/hero/HeroBillboardGallery';
|
|
|
|
|
import AboutMetric from '@/components/sections/about/AboutMetric';
|
|
|
|
|
@@ -11,6 +12,41 @@ import { Users, Calendar, Award, Clock, Sparkles, MessageSquare, MessageCircle,
|
|
|
|
|
import Link from 'next/link';
|
|
|
|
|
|
|
|
|
|
export default function HomePage() {
|
|
|
|
|
const heroRef = useRef<HTMLDivElement>(null);
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
const handleScroll = () => {
|
|
|
|
|
if (heroRef.current) {
|
|
|
|
|
const scrollY = window.scrollY;
|
|
|
|
|
heroRef.current.style.transform = `translateY(${scrollY * 0.5}px)`;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const observerOptions = {
|
|
|
|
|
threshold: 0.1,
|
|
|
|
|
rootMargin: '0px 0px -100px 0px'
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const observer = new IntersectionObserver((entries) => {
|
|
|
|
|
entries.forEach((entry) => {
|
|
|
|
|
if (entry.isIntersecting) {
|
|
|
|
|
entry.target.classList.add('animate-fade-in-up');
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}, observerOptions);
|
|
|
|
|
|
|
|
|
|
document.querySelectorAll('[data-section]').forEach((section) => {
|
|
|
|
|
observer.observe(section);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
window.addEventListener('scroll', handleScroll);
|
|
|
|
|
|
|
|
|
|
return () => {
|
|
|
|
|
window.removeEventListener('scroll', handleScroll);
|
|
|
|
|
observer.disconnect();
|
|
|
|
|
};
|
|
|
|
|
}, []);
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<ThemeProvider
|
|
|
|
|
defaultButtonVariant="text-shift"
|
|
|
|
|
@@ -38,7 +74,7 @@ export default function HomePage() {
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div id="hero-section" data-section="hero-section">
|
|
|
|
|
<div id="hero-section" data-section="hero-section" ref={heroRef} className="relative overflow-hidden">
|
|
|
|
|
<HeroBillboardGallery
|
|
|
|
|
title="Welcome to TechConnect Club"
|
|
|
|
|
description="Where innovation meets community. Join us in exploring the latest in computing, building projects, and connecting with fellow tech enthusiasts."
|
|
|
|
|
@@ -59,7 +95,7 @@ export default function HomePage() {
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div id="about-section" data-section="about-section">
|
|
|
|
|
<div id="about-section" data-section="about-section" className="opacity-0">
|
|
|
|
|
<AboutMetric
|
|
|
|
|
title="Our Club Impact"
|
|
|
|
|
metrics={[
|
|
|
|
|
@@ -73,7 +109,7 @@ export default function HomePage() {
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div id="features-section" data-section="features-section">
|
|
|
|
|
<div id="features-section" data-section="features-section" className="opacity-0">
|
|
|
|
|
<FeatureCardTwelve
|
|
|
|
|
title="Empower Your Tech Journey"
|
|
|
|
|
description="Join our computer club to unlock your potential through hands-on learning, collaborative projects, and industry insights tailored for students and tech enthusiasts."
|
|
|
|
|
@@ -118,7 +154,7 @@ export default function HomePage() {
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div id="testimonials-section" data-section="testimonials-section">
|
|
|
|
|
<div id="testimonials-section" data-section="testimonials-section" className="opacity-0">
|
|
|
|
|
<TestimonialCardTwelve
|
|
|
|
|
testimonials={[
|
|
|
|
|
{id: 'testimonial-1', name: 'Alex Johnson', imageSrc: 'http://img.b2bpic.net/free-photo/medium-shot-smiley-people-celebrating_23-2149008959.jpg?_wi=1'},
|
|
|
|
|
@@ -133,7 +169,7 @@ export default function HomePage() {
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div id="contact-section" data-section="contact-section">
|
|
|
|
|
<div id="contact-section" data-section="contact-section" className="opacity-0">
|
|
|
|
|
<ContactFaq
|
|
|
|
|
faqs={[
|
|
|
|
|
{
|
|
|
|
|
|