/* Projects.jsx — obras realizadas with filter */ const FILTERS = ["Todas", "Movimiento de suelos", "Tendido de redes", "Hormigón", "Asfalto", "Adoquinado", "Mantenimiento"]; const PROJECTS = [ { id: "p1", t: "Repavimentación urbana", cat: "Asfalto", loc: "Calle de barrio", year: "2024", meta: "Fresado, carpeta en caliente y compactación", src: "assets/photos/obra-asfalto-rodillo.jpg", big: true }, { id: "p2", t: "Asfalto urbano en ejecución", cat: "Asfalto", loc: "Calle urbana", year: "2024", meta: "Compactación de carpeta con rodillo", src: "assets/photos/obra-asfalto-urbano-1.jpg" }, { id: "p2b", t: "Asfalto urbano en ejecución", cat: "Asfalto", loc: "Calle urbana", year: "2024", meta: "Terminadora y cuadrilla colocando carpeta", src: "assets/photos/obra-asfalto-urbano-2.jpg" }, { id: "p3", t: "Pavimento de hormigón + cordón", cat: "Hormigón", loc: "Playa de maniobras", year: "2024", meta: "Losa de hormigón y cordón cuneta", src: "assets/photos/obra-hormigon-cordon.jpg" }, { id: "p0", t: "Movimiento de suelos", cat: "Movimiento de suelos", loc: "Obra en ejecución", year: "2024", meta: "Excavación y nivelación con excavadora New Holland", src: "assets/photos/maq-newholland-movsuelos.jpg" }, { id: "p4", t: "Tendido de redes de servicios", cat: "Tendido de redes", loc: "Zona rural", year: "2023", meta: "Excavación de zanja y colocación de cañerías", src: "assets/photos/obra-caneria-desague.jpg" }, { id: "p5", t: "Bacheo y terminación", cat: "Mantenimiento", loc: "Avenida urbana", year: "2024", meta: "Bacheo, sellado y terminación con cuadrilla", src: "assets/photos/obra-mantenimiento-cuadrilla.jpg" }, { id: "p7", t: "Adoquinado de acceso", cat: "Adoquinado", loc: "Playa y acceso", year: "2024", meta: "Colocación de adoquines de hormigón con cordón", src: "assets/photos/obra-adoquinado.jpg" }, ]; function ProjectCard({ p }) { return (
{p.cat}

{p.t}

{p.meta}

◍ {p.loc}
); } function Projects() { const [filter, setFilter] = useState("Todas"); const shown = PROJECTS.filter((p) => filter === "Todas" || p.cat === filter); return (
{FILTERS.map((f) => ( ))}
{shown.map((p) => )}
); } Object.assign(window, { Projects });