import { useState, useEffect } from 'react'; import Navbar from '../Navbar'; export default function Home() { const [posts, setPosts] = useState([]); const [filter, setFilter] = useState(''); const [isMobile, setIsMobile] = useState(false); useEffect(() => { // Carga de posts fetch('http://localhost:9002/posts') .then(res => res.json()) .then(data => setPosts(Array.isArray(data) ? data : [])) .catch(err => console.error("Error:", err)); // Manejo de responsive const handleResize = () => setIsMobile(window.innerWidth <= 768); handleResize(); window.addEventListener('resize', handleResize); return () => window.removeEventListener('resize', handleResize); }, []); const handleRead = async (id) => { try { await fetch(`http://localhost:9002/posts/view/${id}`, { method: 'POST' }); } catch (e) {} }; const filtered = posts.filter(p => p.title.toLowerCase().includes(filter.toLowerCase()) || p.tags?.toLowerCase().includes(filter.toLowerCase()) ); return (

Bienvenido al Blog

setFilter(e.target.value)} style={{ width: '100%', maxWidth: '600px', padding: isMobile ? '12px 20px' : '16px 25px', borderRadius: '30px', border: '2px solid #e2e8f0', fontSize: '1rem', outline: 'none', boxShadow: '0 2px 4px rgba(0,0,0,0.02)', boxSizing: 'border-box' }} />
{filtered.map(post => (
#{post.tags || 'General'} {post.views || 0} visitas

{post.title}

))} {filtered.length === 0 && (

No se encontraron artículos que coincidan con tu búsqueda.

)}
); }