import React, { useState } from 'react'; import { motion, AnimatePresence } from 'framer-motion'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { Search, SlidersHorizontal, Calendar as CalendarIcon, ArrowUpDown, X } from 'lucide-react'; import SEOHead from '@/components/layout/SEOHead'; import LoadingSpinner from '@/components/layout/LoadingSpinner'; import FilterPanel from '@/components/FilterPanel'; import CalendarDisplay from '@/components/event-filters/CalendarDisplay'; import PaginationControls from '@/components/PaginationControls'; import { useEventFilters } from '@/components/event-filters/useEventFilters'; import EventList from '@/components/event-filters/EventList'; const EventFiltersPage = () => { const { events, loading, filters, setFilters, searchTerm, setSearchTerm, sortOption, setSortOption, pagination, daysWithEvents, } = useEventFilters(); const [showFilters, setShowFilters] = useState(false); const [showCalendar, setShowCalendar] = useState(false); const handleApplyFilters = (newFilters) => { setFilters(newFilters); }; const sortOptions = [ { value: 'recommended', label: 'Recomendados' }, { value: 'date_asc', label: 'Más cercanos' }, { value: 'price_asc', label: 'Más baratos' }, { value: 'price_desc', label: 'Más caros' }, { value: 'popularity_desc', label: 'Más gente' }, { value: 'popularity_asc', label: 'Menos gente' }, ]; return ( <>

Encuentra tu Próxima Noche

Usa nuestros filtros para descubrir el evento perfecto para ti. La noche es joven.

setSearchTerm(e.target.value)} className="w-full pl-12 pr-4 py-3 h-14 text-lg bg-charcoal-black/60 border-dark-red/60 rounded-lg" />
{showFilters && (

Filtros

)}
{showCalendar && ( setFilters(f => ({ ...f, dateRange: range }))} currentCalendarMonth={filters.calendarMonth} onCalendarMonthChange={(month) => setFilters(f => ({ ...f, calendarMonth: month }))} daysWithEvents={daysWithEvents} /> )} {!loading && events.length > 0 && (
)}
); }; export default EventFiltersPage;