import { useEffect, useState } from 'react'; import SearchBar from '../components/SearchBar'; import ListingCard from '../components/ListingCard'; import { publicService } from '../services/publicService'; import type { Listing, Category } from '../types'; export default function HomePage() { const [listings, setListings] = useState([]); const [categories, setCategories] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { loadInitialData(); }, []); const loadInitialData = async () => { setLoading(true); try { const [latestListings, cats] = await Promise.all([ publicService.getLatestListings(), publicService.getCategories() ]); setListings(latestListings); setCategories(cats); } catch (e) { console.error(e); } finally { setLoading(false); } }; const handleSearch = async (query: string) => { setLoading(true); try { const results = await publicService.searchListings(query); setListings(results); } catch (e) { console.error(e); } finally { setLoading(false); } }; const mainCategories = categories.filter(c => !c.parentId); return (
{/* Hero Section */}

Encuentra tu próximo objetivo

Clasificados verificados de Autos, Propiedades y más.

{/* Categories Quick Links */}
{mainCategories.map(cat => ( ))}
{/* Latest Listings */}

{loading ? 'Cargando...' : 'Resultados Recientes'}

{!loading && listings.length === 0 && (
No se encontraron avisos con esos criterios.
)}
{listings.map(listing => ( ))}
); }