'use client' import { useEffect, useState } from 'react' import { useRouter } from 'next/navigation' import { useVisitor } from '@/context/VisitorContext' import { tPlain } from '@/lib/i18n' import type { SectionDTO, OrderedTranslationAndResourceDTO } from '@/lib/api/types' import AppBar from '@/components/ui/AppBar' interface Props { section: SectionDTO slug: string configId: string languages: string[] } export default function PdfSection({ section, slug, configId, languages }: Props) { const { language, setAvailableLanguages } = useVisitor() const router = useRouter() useEffect(() => { setAvailableLanguages(languages) }, [languages]) const pdfs = [...(section.pdf?.pdfs ?? [])].sort((a, b) => (a.order ?? 0) - (b.order ?? 0)) const [selectedIndex, setSelectedIndex] = useState(0) function getPdfUrl(pdf: OrderedTranslationAndResourceDTO): string | undefined { const translations = pdf.translationAndResourceDTOs ?? [] return ( translations.find((t) => t.language === language)?.resource?.url ?? translations[0]?.resource?.url ) } const currentUrl = pdfs.length > 0 ? getPdfUrl(pdfs[selectedIndex]) : undefined return (
router.back()} /> {pdfs.length > 1 && (
{pdfs.map((pdf, i) => ( ))}
)}
{!currentUrl ? (
Aucun PDF à afficher
) : (