{{-- Composant de filtres modernes - Version compacte et fonctionnelle Usage: @include('components.filters.compact-filters', [...]) --}} @php $pageType = $pageType ?? 'services'; $themeColor = $themeColor ?? 'blue'; $categories = $categories ?? collect(); $conditions = $conditions ?? []; // Couleurs par thème $themes = [ 'blue' => ['primary' => 'blue', 'gradient' => 'from-blue-500 to-indigo-600', 'bg' => 'bg-blue-50', 'border' => 'border-blue-200', 'text' => 'text-blue-600', 'ring' => 'ring-blue-500', 'btn' => 'bg-blue-600 hover:bg-blue-700'], 'emerald' => ['primary' => 'emerald', 'gradient' => 'from-emerald-500 to-teal-600', 'bg' => 'bg-emerald-50', 'border' => 'border-emerald-200', 'text' => 'text-emerald-600', 'ring' => 'ring-emerald-500', 'btn' => 'bg-emerald-600 hover:bg-emerald-700'], 'orange' => ['primary' => 'orange', 'gradient' => 'from-orange-500 to-red-500', 'bg' => 'bg-orange-50', 'border' => 'border-orange-200', 'text' => 'text-orange-600', 'ring' => 'ring-orange-500', 'btn' => 'bg-orange-600 hover:bg-orange-700'], ]; $t = $themes[$themeColor] ?? $themes['blue']; // Prix max par page (jusqu'à 50000€) $maxPrices = ['services' => 50000, 'equipment' => 50000, 'urgent-sales' => 50000, 'food' => 5000]; $maxPrice = $maxPrices[$pageType] ?? 50000; // Valeurs actuelles $search = request('search', ''); $category = request('category', request('main_category', '')); $subcategory = request('subcategory', request('sub_category', '')); $priceMin = request('price_min', ''); $priceMax = request('price_max', ''); $location = request('location', request('city', '')); $radius = request('radius', '25'); $latitude = request('latitude', ''); $longitude = request('longitude', ''); $sort = request('sort', ''); $serviceDate = request('service_date', ''); $serviceTime = request('service_time', ''); $equipmentDateFrom = request('equipment_date_from', request('available_from', '')); $equipmentDateTo = request('equipment_date_to', request('available_to', '')); // Préparer les sous-catégories pour JavaScript $categoriesWithChildren = []; foreach($categories as $cat) { if (is_object($cat) && isset($cat->children)) { $categoriesWithChildren[$cat->id] = $cat->children->map(function($child) { return ['id' => $child->id, 'name' => $child->name]; })->toArray(); } } @endphp
{{-- Barre de couleur --}}
{{-- En-tête --}}
Filtres @php $activeFilters = collect([ $search, $category, $priceMin, $priceMax, $location, request('verified_only'), request('with_delivery'), request('condition'), $serviceDate, $serviceTime, $equipmentDateFrom, $equipmentDateTo, request('available_now'), request('reservable'), request('availability') ])->filter()->count(); @endphp @if($activeFilters > 0) {{ $activeFilters }} @endif
{{-- Formulaire --}}