--- import { getCollection } from 'astro:content'; import { getLocale } from '@/lib/locale'; import general from '../content/settings/general.json'; import seo from '../content/settings/seo.json'; import Layout from '@/layouts/base.astro'; import Hero from '@/components/ui/hero'; import Services from '@/components/ui/services'; import WhyChooseUs from '@/components/ui/why-choose-us'; import CTABanner from '@/components/ui/cta-banner'; import Footer from '@/components/footer.astro'; import Testimonials from '@/components/ui/testimonials'; const locale = getLocale(Astro); const [heroEntry] = await getCollection('hero', (e) => e.id === `${locale}/main`); const [navEntry] = await getCollection('navigation', (e) => e.id === `${locale}/main`); const [ctaEntry] = await getCollection('cta', (e) => e.id === `${locale}/main`); const [pourquoiEntry] = await getCollection('pourquoi', (e) => e.id === `${locale}/main`); if (!heroEntry || !navEntry || !ctaEntry || !pourquoiEntry) { throw new Error(`Missing content collections for locale: ${locale}`); } const heroData = heroEntry.data; const nav = navEntry.data; const ctaData = ctaEntry.data; const pourquoiData = pourquoiEntry.data; const ctaImage = (await import('@/assets/Website Content/Photos/cozy-modern-kitchen-room-interior-design-with-dark-2024-04-01-23-13-59-utc.webp')).default; const allServices = await getCollection('services', (s) => s.id.startsWith(`${locale}/`)); const services = allServices.sort((a, b) => a.data.order - b.data.order); const serviceImages: Record = { interior: { src: (await import('@/assets/photos/empty-room-blue-wall-with-moulding-and-parquet-fl-2023-11-27-04-52-31-utc.webp')).default, alt: 'Salon avec peinture intérieure soignée', }, exterior: { src: (await import('@/assets/Website Content/Photos/wooden-deck-with-sky-2023-11-27-05-29-44-utc.webp')).default, alt: 'Maison avec peinture extérieure', }, commercial: { src: (await import('@/assets/Website Content/Photos/minimalist-bright-office-room-interior-design-mee-2023-11-27-05-17-04-utc.webp')).default, alt: 'Espace commercial peint', }, decoration: { src: (await import('@/assets/Website Content/Photos/Mural_Jerkspot_02.jpg')).default, alt: 'Décoration intérieure et murale', }, renovation: { src: (await import('@/assets/Website Content/Photos/amazing-design-of-a-room-with-doors-and-parquet-fl-2023-11-27-05-33-04-utc.webp')).default, alt: 'Rénovation et finitions', }, }; const features = services.map((service) => { const icon = service.data.icon ?? 'interior'; const img = serviceImages[icon] ?? serviceImages.interior; const imageSrc = (img.src as import('astro').ImageMetadata).src; return { name: service.data.title, description: service.data.description, imageSrc, imageAlt: img.alt, }; }); const heroContent = { pillCta: heroData.pillCta, title: heroData.title, subtitle: heroData.subtitle, cta: heroData.cta, ctaHref: heroData.ctaHref, }; ---