--- // Import section components import MainLayout from "@/layouts/MainLayout.astro"; import ProductTabBtn from "@components/ui/buttons/ProductTabBtn.astro"; import PrimaryCTA from "@components/ui/buttons/PrimaryCTA.astro"; import { Image } from "astro:assets"; import { getCollection } from "astro:content"; import { SITE } from "@data/constants"; // Global declaration for gsap animation library declare global { interface Window { gsap: any; } } // This gets the static paths for all the unique products export async function getStaticPaths() { const productEntries = await getCollection("products", ({ id }) => { return id.startsWith("fr/"); }); return productEntries.map((product) => ({ params: { slug: product.slug }, props: { product }, })); } const { product } = Astro.props; const pageTitle: string = `${product.data.title} | ${SITE.title}`; --- {product.data.main.content} {product.data.title} {product.data.description} { product.data.tabs.map((tab, index) => ( )) } {product.data.longDescription.title} {product.data.longDescription.subTitle} { product.data.descriptionList.map((list) => ( {list.title} {list.subTitle} )) } { product.data.specificationsLeft.map((spec) => ( {spec.title} {spec.subTitle} )) } { product.data.specificationsRight ? ( {product.data.specificationsRight?.map((spec) => ( {spec.title} {spec.subTitle} ))} ) : product.data.tableData ? ( {product.data.tableData?.[0].feature?.map( (header) => ( {header} ) )} {product.data.tableData?.map((row) => // Wrap each row's content in a separate element row.description.map((rowData) => ( {/* Iterate through each cell value in the row's description array */} {rowData.map((cellValue) => ( // Render each cell value in its own element {cellValue} ))} )) )} ) : null } { product.data.blueprints.first && ( ) } { product.data.blueprints.second && ( ) }
{product.data.main.content}
{product.data.description}
{product.data.longDescription.subTitle}
{list.subTitle}
{spec.subTitle}