'use client'; import { useState, useEffect, useRef } from 'react'; import { useRouter } from 'next/navigation'; import AWSProductsSection from './AWSProductsSection'; import Navbar from './Navbar'; import Footer from './Footer'; import { content, slides } from '../data/content'; export default function HomeClient({ lang }: { lang: string }) { const router = useRouter(); const currentLang = lang; const [currentSlide, setCurrentSlide] = useState(0); const [isAutoPlaying, setIsAutoPlaying] = useState(true); const autoPlayTimeoutRef = useRef(null); // Validate language and redirect if invalid useEffect(() => { const supportedLangs = ['zh-CN', 'zh-TW', 'en', 'ko', 'ja']; if (!supportedLangs.includes(currentLang)) { router.push('/en'); } }, [currentLang, router]); // Cleanup timeout on component unmount useEffect(() => { return () => { if (autoPlayTimeoutRef.current) { clearTimeout(autoPlayTimeoutRef.current); } }; }, []); const currentContent = content[currentLang as keyof typeof content] || content.en; const currentSlideData = slides[currentSlide]; // Carousel auto-play functionality useEffect(() => { if (!isAutoPlaying) return; const interval = setInterval(() => { setCurrentSlide((prev) => (prev + 1) % slides.length); }, 5000); // Change slide every 5 seconds return () => clearInterval(interval); }, [isAutoPlaying, slides.length]); const resumeAutoPlayWithDelay = () => { if (autoPlayTimeoutRef.current) { clearTimeout(autoPlayTimeoutRef.current); } autoPlayTimeoutRef.current = setTimeout(() => { setIsAutoPlaying(true); }, 10000); // Resume auto-play after 10 seconds }; // Carousel navigation functions const nextSlide = () => { setCurrentSlide((prev) => (prev + 1) % slides.length); setIsAutoPlaying(false); resumeAutoPlayWithDelay(); }; const prevSlide = () => { setCurrentSlide((prev) => (prev - 1 + slides.length) % slides.length); setIsAutoPlaying(false); resumeAutoPlayWithDelay(); }; const goToSlide = (index: number) => { setCurrentSlide(index); setIsAutoPlaying(false); resumeAutoPlayWithDelay(); }; const handleLanguageChange = (lang: string) => { router.push(`/${lang}`); }; return (
{/* Hero Section */}
{/* Background with curved flowing design */}
{/* Additional animated elements for each slide */}
{currentSlide === 0 && (
)} {currentSlide === 1 && (
)} {currentSlide === 2 && (
)} {currentSlide === 3 && (
)}
{/* Navigation arrows */}

{ currentSlideData.title[ currentLang as keyof typeof currentSlideData.title ] }

{ currentSlideData.subtitle[ currentLang as keyof typeof currentSlideData.subtitle ] }

{ currentSlideData.description[ currentLang as keyof typeof currentSlideData.description ] }

{/* Slide indicators */}
{slides.map((_, index) => (
{/* Leave a Message button */}
{/* Features Section */}

{currentContent.features.title}

{currentContent.features.items.map((feature, index) => (

{feature.title}

{feature.desc}

))}
{/* AWS Products Section */}
); }