56 lines
2.1 KiB
TypeScript
56 lines
2.1 KiB
TypeScript
import { LegalContentCard } from "@/components/layout/legal-content-card";
|
|
import { PublicFooter } from "@/components/layout/public-footer";
|
|
import { SETTING_KEYS } from "@/lib/constants";
|
|
import { getSettings } from "@/lib/settings";
|
|
import { renderLegalTokens } from "@/lib/utils";
|
|
|
|
export const dynamic = "force-dynamic";
|
|
|
|
export async function SharedLegalPage({
|
|
type
|
|
}: {
|
|
type: "privacy" | "imprint";
|
|
}) {
|
|
const settings = await getSettings([
|
|
SETTING_KEYS.COMPANY_NAME,
|
|
type === "privacy" ? SETTING_KEYS.PRIVACY_PAGE_TITLE : SETTING_KEYS.IMPRINT_PAGE_TITLE,
|
|
type === "privacy" ? SETTING_KEYS.PRIVACY_PAGE_CONTENT : SETTING_KEYS.IMPRINT_PAGE_CONTENT,
|
|
SETTING_KEYS.FOOTER_PRIVACY_LABEL,
|
|
SETTING_KEYS.FOOTER_PRIVACY_URL,
|
|
SETTING_KEYS.FOOTER_IMPRINT_LABEL,
|
|
SETTING_KEYS.FOOTER_IMPRINT_URL,
|
|
SETTING_KEYS.FOOTER_COPYRIGHT_TEXT
|
|
]).catch(() => ({} as Record<string, string>));
|
|
|
|
const companyName = settings[SETTING_KEYS.COMPANY_NAME] ?? "CalBook";
|
|
const title =
|
|
type === "privacy"
|
|
? (settings[SETTING_KEYS.PRIVACY_PAGE_TITLE] ?? "Datenschutz")
|
|
: (settings[SETTING_KEYS.IMPRINT_PAGE_TITLE] ?? "Impressum");
|
|
const content = renderLegalTokens(
|
|
type === "privacy"
|
|
? (settings[SETTING_KEYS.PRIVACY_PAGE_CONTENT] ?? "")
|
|
: (settings[SETTING_KEYS.IMPRINT_PAGE_CONTENT] ?? ""),
|
|
companyName
|
|
);
|
|
|
|
return (
|
|
<div className="min-h-screen bg-slate-50 flex flex-col font-sans">
|
|
<main className="flex-1 mx-auto w-full max-w-3xl px-4 py-8 lg:py-12">
|
|
<LegalContentCard title={title} content={content} />
|
|
</main>
|
|
<PublicFooter
|
|
companyName={companyName}
|
|
privacyLabel={settings[SETTING_KEYS.FOOTER_PRIVACY_LABEL] ?? "Datenschutz"}
|
|
privacyHref={settings[SETTING_KEYS.FOOTER_PRIVACY_URL] ?? "/datenschutz"}
|
|
imprintLabel={settings[SETTING_KEYS.FOOTER_IMPRINT_LABEL] ?? "Impressum"}
|
|
imprintHref={settings[SETTING_KEYS.FOOTER_IMPRINT_URL] ?? "/impressum"}
|
|
copyrightTemplate={
|
|
settings[SETTING_KEYS.FOOTER_COPYRIGHT_TEXT] ??
|
|
"© {{year}} {{companyName}}"
|
|
}
|
|
/>
|
|
</div>
|
|
);
|
|
}
|