diff --git a/components/legal-page.tsx b/components/legal-page.tsx index db31c5f..5762130 100644 --- a/components/legal-page.tsx +++ b/components/legal-page.tsx @@ -3,7 +3,13 @@ import { notFound } from "next/navigation" import { PublicHeader } from "@/components/public-header" import { SiteFooter } from "@/components/site-footer" import { markdownToHtml } from "@/lib/markdown" -import { SITE_PAGE_META, SitePageKey, isSafeMediaUrl } from "@/lib/site-pages" +import { + SITE_PAGE_META, + SitePageKey, + hasSitePageContent, + isAllowedEmbedUrl, + isSafeMediaUrl, +} from "@/lib/site-pages" import { readSitePages } from "@/lib/site-pages.server" /** @@ -17,17 +23,20 @@ import { readSitePages } from "@/lib/site-pages.server" export async function LegalPage({ page }: { page: SitePageKey }) { const pages = await readSitePages() const content = pages[page].trim() - - if (!content) notFound() - - const html = await markdownToHtml(content) const meta = SITE_PAGE_META[page] - // Zweite Prüfung vor der Ausgabe: Was in der Datenbank steht, könnte aus - // einer Zeit vor der Prüfung in der API stammen. - const video = isSafeMediaUrl(pages.signLanguageVideo) - ? pages.signLanguageVideo.trim() - : "" + // Auf der Gebärdensprach-Seite ist das Video der eigentliche Inhalt. Sie + // erscheint deshalb auch dann, wenn nur eine Videoadresse hinterlegt ist – + // ein zusätzlicher Text ist willkommen, aber keine Bedingung. + const video = + page === "signLanguage" && isSafeMediaUrl(pages.signLanguageVideo) + ? pages.signLanguageVideo.trim() + : "" + + if (!hasSitePageContent(pages, page)) notFound() + + const html = content ? await markdownToHtml(content) : "" + const captions = isSafeMediaUrl(pages.signLanguageCaptions) ? pages.signLanguageCaptions.trim() : "" @@ -46,24 +55,39 @@ export async function LegalPage({ page }: { page: SitePageKey }) { werden eingebunden, sobald eine WebVTT-Datei hinterlegt ist. */} {page === "signLanguage" && video && (
-