dml_frontend/composables/usePageMeta.ts
2025-05-16 13:22:13 +02:00

44 lines
1.3 KiB
TypeScript

// composables/usePageMeta.ts
import { useRoute } from 'vue-router'
import { useMainStore } from '~/stores/main'
import { useHead } from '@unhead/vue'
export function usePageMeta() {
const route = useRoute()
const pageLink = route.path
const mainStore = useMainStore()
const page = mainStore.getPageByLink(pageLink)
console.log(page)
if (!page) {
console.warn(`Keine Seite gefunden für den pageLink "${pageLink}"`)
return
}
const metaTitle = page.SEO?.pageTitle || 'Standard Title'
const metaDescription = page.SEO?.seoDescription || 'Standard Description'
const metaImage = page.SEO?.seoImage?.url || '/default-image.jpg'
try {
JSON.stringify(metaTitle)
JSON.stringify(metaDescription)
JSON.stringify(metaImage)
} catch (err) {
console.error('Fehler beim Serialisieren der Meta-Daten:', err)
}
useHead({
title: metaTitle,
meta: [
{ name: 'description', content: metaDescription },
{ property: 'og:title', content: metaTitle },
{ property: 'og:description', content: metaDescription },
{ property: 'og:image', content: metaImage },
{ name: 'twitter:title', content: metaTitle },
{ name: 'twitter:description', content: metaDescription },
{ name: 'twitter:image', content: metaImage },
]
})
}