import React, { useState, useEffect } from 'react'; import { useShop } from '../context/ShopContext'; import { ProductCard } from '../components/common/ProductCard'; import { ArrowRight, Sparkles, Clock, ShieldCheck, Truck, RotateCcw, Headphones, CheckCircle2, Star, Quote, Flame, ChevronRight, ChevronLeft, Smartphone, Download } from 'lucide-react'; export const HomePage: React.FC = () => { const { products, categories, navigateTo, language, t, formatPrice, reviews, heroBanners, triggerInstallApp } = useShop(); // Active filter tab for Featured Products const [activeTab, setActiveTab] = useState('all'); // Hero Banner Slider State const [currentBannerIdx, setCurrentBannerIdx] = useState(0); const [isBannerHovered, setIsBannerHovered] = useState(false); // Active banners list const activeBanners = heroBanners.filter((b) => b.isActive); // Auto-advance banner every 5 seconds useEffect(() => { if (activeBanners.length <= 1 || isBannerHovered) return; const interval = setInterval(() => { setCurrentBannerIdx((prev) => (prev + 1) % activeBanners.length); }, 5000); return () => clearInterval(interval); }, [activeBanners.length, isBannerHovered]); const handlePrevBanner = () => { setCurrentBannerIdx((prev) => (prev - 1 + activeBanners.length) % activeBanners.length); }; const handleNextBanner = () => { setCurrentBannerIdx((prev) => (prev + 1) % activeBanners.length); }; const currentBanner = activeBanners[currentBannerIdx] || activeBanners[0]; // Flash deal countdown timer state (hours, minutes, seconds) const [timeLeft, setTimeLeft] = useState({ hours: 14, minutes: 32, seconds: 48 }); useEffect(() => { const timer = setInterval(() => { setTimeLeft((prev) => { if (prev.seconds > 0) { return { ...prev, seconds: prev.seconds - 1 }; } else if (prev.minutes > 0) { return { ...prev, minutes: 59, seconds: 59 }; } else if (prev.hours > 0) { return { ...prev, hours: prev.hours - 1, minutes: 59, seconds: 59 }; } return { hours: 24, minutes: 0, seconds: 0 }; }); }, 1000); return () => clearInterval(timer); }, []); // Filtered product slices const flashDeals = products.filter((p) => p.isFlashDeal && p.status === 'published'); const bestSellers = products.filter((p) => p.isBestSeller && p.status === 'published').slice(0, 4); const newArrivals = products.filter((p) => p.isNewArrival && p.status === 'published').slice(0, 4); const tabFilteredProducts = products.filter((p) => { if (p.status !== 'published') return false; if (activeTab === 'all') return true; return p.category === activeTab; }).slice(0, 8); return (
{/* 1. Dynamic Hero Promotional Banner System with Slider */} {currentBanner && (
setIsBannerHovered(true)} onMouseLeave={() => setIsBannerHovered(false)} className="relative overflow-hidden bg-stone-900 text-white rounded-3xl mx-4 sm:mx-6 lg:mx-8 mt-6 shadow-xl transition-all" > {/* Background ambient lighting */}
{/* Hero Copy */}
{/* Badge & Discount Tag */}
{currentBanner.badgeBn} ({currentBanner.badge}) {currentBanner.discountBadge && ( {currentBanner.discountBadge} )}
{/* Headline (90% Bangla dominant) */}

{currentBanner.titleBn} {currentBanner.title}

{/* Subtitle */}

{currentBanner.subtitleBn} {currentBanner.subtitle}

{/* CTA Buttons */}
{/* Quick Metrics */}
১০,০০০+ সন্তুষ্ট গ্রাহক (Customers)
১০০% খাঁটি আসল পণ্য (100% Pure)
৬৪ জেলায় ক্যাশ অন ডেলিভারি (COD)
{/* Hero Visual Card */}
{currentBanner.title}
{/* Float Card on Hero */}
Featured Offer (বিশেষ অফার)

{currentBanner.title}

{currentBanner.subtitleBn}

{/* Carousel Arrows & Dots Controls */} {activeBanners.length > 1 && (
{/* Prev / Next buttons */}
{/* Indicator Dots */}
{activeBanners.map((_, idx) => (
)}
)} {/* 2. Customer Benefits Strip */}

দ্রুত ডেলিভারি (Express Delivery)

ঢাকায় ২৪-৪৮ ঘণ্টা, সারাদেশে ৭২ ঘণ্টা

ক্যাশ অন ডেলিভারি (COD)

পণ্য হাতে পেয়ে মূল্য পরিশোধ করুন

৭ দিনে সহজ রিটার্ন (7-Day Return)

ত্রুটিযুক্ত পণ্যে দ্রুত এক্সচেঞ্জ বা রিফান্ড

সার্বক্ষণিক সহায়তা (24/7 Helpline)

ফোন কল এবং হোয়াটসঅ্যাপে বন্ধুসুলভ সেবা

{/* 3. Category Shortcuts */}
ক্যাটাগরি সমূহ (Collections)

জনপ্রিয় ক্যাটাগরি (Featured Categories)

{categories.map((cat) => (
navigateTo('category', { categorySlug: cat.slug })} className="group cursor-pointer bg-white rounded-2xl border border-stone-200/90 p-3.5 text-center transition-all duration-200 hover:border-emerald-400 hover:shadow-lg flex flex-col items-center" >
{cat.name}

{cat.name}

{cat.nameBn} {cat.itemCount} Items
))}
{/* 4. Flash Deals Section with Countdown Timer */} {flashDeals.length > 0 && (
{/* Header with real countdown */}

ফ্ল্যাশ ডিল ধামাকা (Flash Deals)

২৫% পর্যন্ত ছাড়

দেরি করবেন না! অফারটি দ্রুত শেষ হতে চলেছে (সীমিত স্টক)।

{/* Countdown Clocks */}
সময় বাকি:
{String(timeLeft.hours).padStart(2, '0')} ঘণ্টা
:
{String(timeLeft.minutes).padStart(2, '0')} মিনিট
:
{String(timeLeft.seconds).padStart(2, '0')} সেকেন্ড
{/* Flash Deal Products Grid */}
{flashDeals.slice(0, 4).map((product) => ( ))}
)} {/* 5. Featured Products with Interactive Category Tabs */}
নির্বাচিত সংগ্রহ (Handpicked)

সেরা পণ্য সম্ভার (Featured Products)

{/* Clean Segmented Tabs */}
{categories.slice(0, 4).map((c) => ( ))}
{tabFilteredProducts.map((product) => ( ))}
{/* 6. Promotional Seasonal Banner */}
ঐতিহ্যবাহী artisanal সংগ্রহ

টাঙ্গাইলের জামদানি ও খাঁটি সুন্দরবনের মধু উৎসব
Tangail Jamdani & Sundarbans Pure Honey Fest

কোনো মধ্যস্বত্বভোগী ছাড়া সরাসরি তাঁতি ও বনজীবীদের খাঁটি পণ্য আপনার দোরগোড়ায়। ১০০% গুণগত মান ও ন্যাচারাল বিশুদ্ধতার লিখিত গ্যারান্টি।

Sundarbans Honey
{/* 7. Best Sellers & New Arrivals in 2 Columns */}
{/* Best Sellers */}

সেরা বিক্রিত পণ্য (Best Sellers)

{bestSellers.map((product) => ( ))}
{/* New Arrivals */}

নতুন কালেকশন (New Arrivals)

{newArrivals.map((product) => ( ))}
{/* 8. Customer Reviews Section */}
গ্রাহকদের বাস্তব মতামত (Customer Reviews)

সারা বাংলাদেশের মানুষের ভালোবাসা ও আস্থা

ঢাকা, চট্টগ্রাম, সিলেট, রাজশাহীসহ ৬৪ জেলার প্রকৃত ক্রেতাদের যাচাইকৃত রিভিউ।

{reviews.slice(0, 3).map((rev) => (
{[...Array(rev.rating)].map((_, i) => ( ))}

"{rev.comment}"

{rev.userName}

{rev.location || 'Dhaka, Bangladesh'}
{rev.verifiedPurchase && ( Verified (আসল ক্রেতা) )}
))}
); };