import { e as createComponent, g as addAttribute, r as renderTemplate, k as renderHead, l as renderScript, h as createAstro } from '../chunks/astro/server_CtsYB3PN.mjs'; import 'piccolore'; import 'clsx'; /* empty css */ export { renderers } from '../renderers.mjs'; const $$Astro = createAstro(); const $$Index = createComponent(async ($$result, $$props, $$slots) => { const Astro2 = $$result.createAstro($$Astro, $$props, $$slots); Astro2.self = $$Index; const DIRECTUS = process.env.DIRECTUS_URL || "http://i5yq3bxu3de6kkk7jd2e0nk7.46.224.49.66.sslip.io"; const TOKEN = process.env.DIRECTUS_TOKEN || "hd-astro-ro-7c1f9a2e"; const SNIPCART = process.env.PUBLIC_SNIPCART_KEY || ""; async function dapi(path) { const r = await fetch(`${DIRECTUS}${path}`, { headers: { Authorization: `Bearer ${TOKEN}` } }); if (!r.ok) return null; return (await r.json()).data; } const pageArr = await dapi("/items/pages?filter[slug][_eq]=home&limit=1"); const page = pageArr && pageArr[0] || { id: 1, kicker: "", headline: "Inhalt nicht geladen", lead: "", intro_heading: "", intro_body: "" }; const products = await dapi("/items/products?limit=20&sort=sort&fields=id,slug,name,priceCents,category,badge") || []; const eur = (c) => (c / 100).toLocaleString("de-DE", { minimumFractionDigits: 2 }) + " €"; const de = (fields) => `collection:pages;item:${page.id};fields:${fields};mode:popover`; return renderTemplate` ${page.headline} · Astro + Directus + Snipcart${SNIPCART && renderTemplate``}${SNIPCART && renderTemplate``}${renderHead()}
${page.kicker || "Demo-Shop"} ${SNIPCART && renderTemplate`Warenkorb (0)`}
${page.kicker}
${page.headline}

${page.lead}

${page.intro_heading}

${page.intro_body}

Produkte (${products.length})

${products.map((p) => renderTemplate`

${p.name}

${eur(p.priceCents)}
`)}
Demo-Stack: Diese Seite ist ein Astro-SSR-Frontend. Texte oben kommen aus Directus (self-host) — im Directus-Studio unter „Visual Editor" erscheinen Edit-Buttons direkt auf den Texten. Der Warenkorb ist Snipcart für ≤~30 Artikel. ${SNIPCART ? "" : "Snipcart-Key fehlt noch → Buttons sind sichtbar, Checkout aktiv erst mit Key."}
${SNIPCART && renderTemplate` ${renderScript($$result, "/tmp/astro-directus/src/pages/index.astro?astro&type=script&index=0&lang.ts")}`} ${renderScript($$result, "/tmp/astro-directus/src/pages/index.astro?astro&type=script&index=1&lang.ts")} `; }, "/tmp/astro-directus/src/pages/index.astro", void 0); const $$file = "/tmp/astro-directus/src/pages/index.astro"; const $$url = ""; const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ __proto__: null, default: $$Index, file: $$file, url: $$url }, Symbol.toStringTag, { value: 'Module' })); const page = () => _page; export { page };