Dos leftovers del esquema original notados de pasada durante las pruebas de ADR 0008 (fuera del alcance original de logo/buscador/ hero/tiles, pero mismo patron): la etiqueta 'Novedades' en text-fuchsia-600 y la seccion 'Club ARI' con gradiente cyan-500/blue-600/violet-600 + badge text-yellow-300. Ambos pasan a los tokens de marca (ari-coral, ari-marino solido, ari-coral-claro) -- ya no queda ningun gradiente ni color hardcodeado del esquema arcoiris original en el home.
22 lines
2.5 KiB
TypeScript
22 lines
2.5 KiB
TypeScript
import Link from "next/link";
|
|
import { ArrowRight } from "lucide-react";
|
|
import { CategoryTiles } from "@/components/home/category-tiles";
|
|
import { HeroCarousel } from "@/components/home/hero-carousel";
|
|
import { TrustBar } from "@/components/home/trust-bar";
|
|
import { ProductCarousel } from "@/components/product/product-carousel";
|
|
import { Button } from "@/components/ui/button";
|
|
import { getCategories, getProducts } from "@/lib/headless/client";
|
|
|
|
// Sin esto, Next.js prerenderiza "/" en build time dentro del Dockerfile,
|
|
// donde HEADLESS_PROVIDER/MEDUSA_* todavia no existen (solo se inyectan en
|
|
// runtime via el Deployment) -- cae al provider mock y ese HTML queda
|
|
// cacheado 1 año (visto en vivo: x-nextjs-prerender:1, s-maxage=31536000),
|
|
// violando el flujo Admin -> revalidate del ADR 0005 justo en el home.
|
|
export const dynamic = "force-dynamic";
|
|
|
|
export default async function HomePage() {
|
|
const [products, categories] = await Promise.all([getProducts(), getCategories()]);
|
|
const treasures = products.filter((product) => product.isNew || product.featured).slice(0, 8);
|
|
return <><HeroCarousel /><TrustBar /><div className="content-auto"><CategoryTiles categories={categories} /></div><section className="content-auto mx-auto max-w-7xl px-4 py-14"><div className="mb-8 flex items-end justify-between gap-5"><div><span className="text-xs font-black uppercase tracking-[.18em] text-ari-coral">Novedades</span><h2 className="mt-2 text-4xl font-black tracking-tight sm:text-5xl">Tesoros recién llegados</h2><p className="mt-3 text-slate-500">Desliza y encuentra nuevos favoritos.</p></div><Button asChild variant="outline" className="hidden sm:inline-flex"><Link href="/catalog">Ver catálogo <ArrowRight className="size-4" /></Link></Button></div><ProductCarousel products={treasures} /></section><section className="content-auto mx-auto max-w-7xl px-4 pb-20"><div className="grid overflow-hidden rounded-[2rem] bg-ari-marino text-white shadow-2xl lg:grid-cols-[1fr_.7fr]"><div className="p-8 sm:p-12"><span className="text-xs font-black uppercase tracking-[.18em] text-ari-coral-claro">Club ARI</span><h2 className="mt-3 text-4xl font-black tracking-tight sm:text-6xl">Promociones, lanzamientos y mucha diversión.</h2><p className="mt-5 max-w-xl text-white/80">Únete a nuestra comunidad y recibe primero las novedades del catálogo.</p><Button variant="yellow" size="lg" className="mt-7">Quiero unirme</Button></div><div className="min-h-64 bg-[url('/images/promo/promo-backpacks.webp')] bg-cover bg-center" /></div></section></>;
|
|
}
|