diff --git a/app/paroles/page.js b/app/paroles/page.js index 96b46ab..8108b12 100644 --- a/app/paroles/page.js +++ b/app/paroles/page.js @@ -2,9 +2,13 @@ import Box from '@mui/material/Box' import {notFound} from 'next/navigation' import {jwennDenyeTeks} from '../../lib/oki-api' +import {formatKuveti} from '../../lib/kuveti' import DenyeTeks from '../../components/teks/denye-teks' import Footer from '../../components/footer' +const apiUrl = process.env.NEXT_PUBLIC_API_URL_ROOT || 'http://localhost:1337' +const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || 'http://localhost:3000' + async function jwennDone() { const denyeTeks = await jwennDenyeTeks() @@ -15,6 +19,38 @@ async function jwennDone() { return denyeTeks } +export async function generateMetadata() { + const denyeTeks = await jwennDone() + const couverture = formatKuveti(denyeTeks[0]?.couverture) + const imageUrl = couverture?.url ? `${apiUrl}${couverture.url}` : `${siteUrl}/logo-512x512.png` + const imageWidth = couverture?.width || 512 + const imageHeight = couverture?.height || 512 + const songList = denyeTeks.slice(0, 3).map(t => `${t.artistes[0]?.alias} – ${t.titre}`).join(', ') + const description = `Derniers morceaux : ${songList}…` + + return { + title: 'PAWÒL-NU | Derniers morceaux', + description, + openGraph: { + title: 'PAWÒL-NU | Derniers morceaux', + description, + url: `${siteUrl}/paroles`, + siteName: 'PAWÒL-NU. Paroles et traductions.', + images: [{url: imageUrl, width: imageWidth, height: imageHeight}], + locale: 'fr_FR', + type: 'website', + }, + twitter: { + site: '@OrganisationKA', + card: 'summary_large_image', + title: 'PAWÒL-NU | Derniers morceaux', + description, + creator: '@OrganisationKA', + images: {url: imageUrl, alt: 'Couverture du dernier morceau publié'}, + }, + } +} + export default async function PawolPaj() { const denyeTeks = await jwennDone()