/* ============================================================ FLORÍADE — Loja + Produto ============================================================ */ function PageHead({ eyebrow, title, sub }){ return (
{eyebrow}

{title}

{sub &&

{sub}

}
); } function Loja({ go, initialLine="todos" }){ const [line, setLine] = useState(initialLine); const [sort, setSort] = useState("curado"); useEffect(()=>{ setLine(initialLine||"todos"); },[initialLine]); let list = PRODUCTS.filter(p=> line==="todos" || p.line===line); if(sort==="precoAsc") list = [...list].sort((a,b)=>a.price-b.price); if(sort==="precoDesc") list = [...list].sort((a,b)=>b.price-a.price); if(sort==="nome") list = [...list].sort((a,b)=>a.name.localeCompare(b.name,"pt-BR")); return (
{LINES.map(l=>( ))}
Ordenar
{list.map((p,i)=> go("produto",id)}/>)}
); } /* ---------- PÁGINA DE PRODUTO ---------- */ function CorrTable({ p }){ const rows = [ ["Planeta", {p.planet}{p.planetName}], ["Signo", {p.sign}{signName(p.sign)}], ["Elemento", {p.elementName}], ["Processo", {p.process}], ["Linha", {p.lineLabel}], ]; return (
{rows.map(([k,v],i)=>(
{k} {v}
))}
); } function signName(g){ const m={"♈":"Áries","♉":"Touro","♊":"Gêmeos","♋":"Câncer","♌":"Leão","♍":"Virgem","♎":"Libra","♏":"Escorpião","♐":"Sagitário","♑":"Capricórnio","♒":"Aquário","♓":"Peixes"}; return m[g]||""; } function Produto({ id, go }){ const p = PRODUCTS.find(x=>x.id===id) || PRODUCTS[0]; const cart = useCart(); const [qty, setQty] = useState(1); useEffect(()=>{ setQty(1); window.scrollTo(0,0); },[id]); const related = PRODUCTS.filter(x=>x.id!==p.id && (x.line===p.line || x.planet===p.planet)).slice(0,3); const relFill = related.length<3 ? [...related, ...PRODUCTS.filter(x=>x.id!==p.id && !related.includes(x))].slice(0,3) : related; return (
{p.planet}
detalhe
rótulo
{p.lineLabel} · {p.process}

{p.name}

{p.latin}

{p.tag}

{p.desc}

Virtudes

    {p.virtues.map(v=>
  • {v}
  • )}
{brl(p.price)}
{qty}

Modo de uso ritual

{p.ritual}

Afinidades

Essências em Ressonância

{relFill.map((r,i)=> go("produto",pid)}/>)}
); } Object.assign(window, { Loja, Produto });