'use client' import { useEffect, useState } from 'react' import Image from 'next/image' import { useRouter } from 'next/navigation' import { useVisitor } from '@/context/VisitorContext' import { t, tPlain } from '@/lib/i18n' import type { SectionDTO } from '@/lib/api/types' import AppBar from '@/components/ui/AppBar' interface Props { section: SectionDTO slug: string configId: string languages: string[] } export default function SliderSection({ section, languages }: Props) { const { language, setAvailableLanguages } = useVisitor() const router = useRouter() const [index, setIndex] = useState(0) useEffect(() => { setAvailableLanguages(languages) }, [languages]) const contents = [...(section.slider?.contents ?? [])] .sort((a, b) => (a.order ?? 0) - (b.order ?? 0)) if (contents.length === 0) { return (
router.back()} />
Aucun contenu à afficher
) } const current = contents[index] return (
router.back()} />
{/* Image zone — ~75% of remaining height */}
{current?.resource?.url && ( {tPlain(current.title, )} {/* Title overlay */} {tPlain(current?.title, language) && (

{tPlain(current?.title, language)}

)} {/* Prev / Next arrows */} {contents.length > 1 && ( <> )}
{/* Description card */} {t(current?.description, language) && (
)} {/* Dots indicator */} {contents.length > 1 && (
{contents.map((_, i) => (
)}
) }