"use client"; import React, { useState, useEffect, useMemo, Suspense } from 'react'; import { useSearchParams } from 'next/navigation'; import { Search } from 'lucide-react'; import { MOCK_BUSINESSES } from '../../lib/mockData'; import { CATEGORIES } from '../../types'; import BusinessCard from '../../components/BusinessCard'; import DirectoryHero from '../../components/DirectoryHero'; const DirectoryPageContent = () => { const [filterCategory, setFilterCategory] = useState('All'); const [searchQuery, setSearchQuery] = useState(''); const searchParams = useSearchParams(); useEffect(() => { const q = searchParams.get('q'); if (q) setSearchQuery(q); }, [searchParams]); const featuredBusiness = useMemo(() => { return MOCK_BUSINESSES.find(b => b.isFeatured); }, []); const filteredBusinesses = useMemo(() => { return MOCK_BUSINESSES.filter(b => { const matchesCategory = filterCategory === 'All' || b.category === filterCategory; const matchesSearch = b.name.toLowerCase().includes(searchQuery.toLowerCase()) || b.description.toLowerCase().includes(searchQuery.toLowerCase()) || b.tags.some(t => t.toLowerCase().includes(searchQuery.toLowerCase())); return matchesCategory && matchesSearch; }); }, [filterCategory, searchQuery]); return (
{/* New Hero Section */} {featuredBusiness && }
{/* Filters Sidebar */}

Filtres

setSearchQuery(e.target.value)} className="w-full border-gray-300 rounded-md shadow-sm focus:ring-brand-500 focus:border-brand-500 sm:text-sm p-2 border" placeholder="Nom, mot-clé..." />
setFilterCategory('All')} className="focus:ring-brand-500 h-4 w-4 text-brand-600 border-gray-300" />
{CATEGORIES.map(cat => (
setFilterCategory(cat)} className="focus:ring-brand-500 h-4 w-4 text-brand-600 border-gray-300" />
))}
{/* Results Grid */}

Annuaire des entreprises

{filteredBusinesses.length} résultats
{filteredBusinesses.length > 0 ? (
{filteredBusinesses.map(biz => ( ))}
) : (

Aucun résultat

Essayez d'ajuster vos filtres de recherche.

)}
); }; const DirectoryPage = () => { return ( Chargement...}> ); }; export default DirectoryPage;