"use client"; import React, { useState, useEffect } from 'react'; import Link from 'next/link'; import { useRouter } from 'next/navigation'; import { Search, MapPin, Briefcase, TrendingUp, Loader2, ArrowRight } from 'lucide-react'; import { generateSlug } from '@/lib/utils'; import { Business, BlogPost } from '@/types'; import BusinessCard from '@/components/BusinessCard'; import { useUser } from '@/components/UserProvider'; import HomeSlider from '@/components/HomeSlider'; interface Props { initialFeatured: Business[]; initialPosts: BlogPost[]; initialCategories: any[]; initialSlides: any[]; } const HomeClient = ({ initialFeatured, initialPosts, initialCategories, initialSlides }: Props) => { const router = useRouter(); const { user, settings } = useUser(); const [searchTerm, setSearchTerm] = useState(''); const [locationTerm, setLocationTerm] = useState(''); const [featuredBusinesses, setFeaturedBusinesses] = useState(initialFeatured); const [posts, setPosts] = useState(initialPosts); const [categories, setCategories] = useState(initialCategories); const [slides, setSlides] = useState(initialSlides); const [loading, setLoading] = useState(false); const [loadingPosts, setLoadingPosts] = useState(false); const handleSearch = (searchTerm: string, locationTerm: string) => { const params = new URLSearchParams(); if (searchTerm) params.append('q', searchTerm); if (locationTerm) params.append('location', locationTerm); router.push(`/annuaire?${params.toString()}`); }; return (
{/* Dynamic Hero Slider */} {/* Featured Categories */}

Secteurs en vedette

{(settings?.homeCategories || categories.slice(0, 4).map(c => c.name)).map((cat: string, idx: number) => (

{cat}

))}
{/* Featured Businesses */}

Entreprises à la une

Découvrez les pépites de notre communauté.

Voir tout l'annuaire
{featuredBusinesses.map(biz => ( ))}
{/* Blog Section */} {settings?.homeBlogShow !== false && (

{settings?.homeBlogTitle || "Derniers Articles"}

{settings?.homeBlogSubtitle || "Toutes les actualités de l'entrepreneuriat africain."}

Voir les actualités
{posts .filter(post => { if (settings?.homeBlogSelection === 'manual') { return settings.homeBlogIds?.includes(post.id); } if (settings?.homeBlogSelection === 'category') { return post.tags?.some((tag: string) => settings.homeBlogCategories?.includes(tag)); } return true; }) .slice(0, settings?.homeBlogCount || 3) .map(post => (
{post.title}

{post.title}

{post.excerpt}

{new Date(post.date).toLocaleDateString('fr-FR')} Lire la suite →
))}
)}
); }; export default HomeClient;