/* Ficha de libro: layout 2 columnas, datos técnicos, CTA Amazon, relacionados. */ (function () { const { useEffect } = React; function trackAmazon(book) { try { if (window.gtag) window.gtag("event", "amazon_click", { book_asin: book.asin, book_title: book.title }); } catch (e) {} } function fmtDate(iso) { try { return new Date(iso).toLocaleDateString("es-ES", { year: "numeric", month: "long" }); } catch (e) { return iso; } } function Detail({ slug, navigate }) { const book = window.FUN_BOOKS.find(b => b.slug === slug); useEffect(() => { window.scrollTo(0, 0); }, [slug]); if (!book) { return (

No encontramos ese libro

); } const related = window.FUN_BOOKS .filter(b => b.asin !== book.asin && (b.category === book.category || b.bands.some(x => book.bands.includes(x)))) .sort((a, b) => (b.category === book.category) - (a.category === book.category)) .slice(0, 3); const specs = [ ["Páginas", book.pages ? `${book.pages}` : "—"], ["Formato", book.format], ["Dimensiones", book.dimensions], ["Publicado", fmtDate(book.publication_date)], ]; return (
{/* Breadcrumb */}
{ e.preventDefault(); navigate("home"); }}>Inicio { e.preventDefault(); navigate("libros"); }}>Libros {book.title}
{/* Izquierda: portada */}
{/* Derecha: información */}
{book.age_range} años {book.category}

{book.title}

{book.rating_value.toFixed(1).replace(".", ",")} · {book.rating_count} reseñas en Amazon

{book.description_short}

{book.description_long}

Qué encontrarás dentro

    {book.features.map((f, i) => (
  • {f}
  • ))}
{specs.map(([k, v]) => (
{k} {v}
))}
trackAmazon(book)}> Comprar en Amazon

Te llevamos a Amazon. Como Asociados, podemos recibir una pequeña comisión sin coste extra para ti.

{/* Relacionados */} {related.length > 0 && (

También te puede gustar

{related.map(b => navigate("libro/" + b.slug)} />)}
)}
); } window.Detail = Detail; })();