--- import Base from '../../layouts/Base.astro'; import PageHero from '../../components/PageHero.astro'; import TrainingCards from '../../components/home/TrainingCards.astro'; import { Image } from 'astro:assets'; import type { ImageMetadata } from 'astro'; import { VISTE_TRAINING, trainingDaMostrare } from '../../data/trainings'; import T from '../../components/content/T.astro'; import { t } from '../../lib/content'; const images = import.meta.glob<{ default: ImageMetadata }>('../../assets/img/training-*.{jpg,png}', { eager: true }); const imgOf = (name: string) => Object.entries(images).find(([p]) => p.includes(name))?.[1]?.default; export const prerender = false; // `/training` mostra tutto; `/training/one-to-one` e `/training/class` il solo sottoinsieme // da cui si arriva cliccando la card corrispondente in /services. Un indirizzo inventato è // 404 e non l'elenco intero: un filtro che non c'è deve vedersi, non passare per buono. const vista = Astro.params.vista; const daMostrare = trainingDaMostrare(vista); if (!daMostrare) return new Response(null, { status: 404 }); const filtrata = Boolean(vista); ---
{filtrata ?

{VISTE_TRAINING[vista!].titolo}

: }
{daMostrare.map((tr, i) => (
{imgOf(tr.image) && {t(`training.${tr.id}.title`)}}

{t(`training.${tr.id}.title`)}

))} {/* Da una vista filtrata si esce: senza questo link chi è entrato da una card di /services non ha modo di vedere gli altri training se non dal menu. */} {filtrata && (

{t('training.tutti.cta-label')}

)}