fix: sync browser title with site settings

This commit is contained in:
Your Name 2026-05-31 22:43:50 +08:00
parent fec4b9d5aa
commit 163497630d

View File

@ -3,28 +3,35 @@ import { Toaster } from "sonner";
import { ThemeProvider } from "@/components/theme-provider";
import { FaviconUpdater } from "@/components/favicon-updater";
import { ImageDeliveryOptimizer } from "@/components/image-delivery-optimizer";
import { getSiteSettings } from "@/lib/db/queries";
import "./globals.css";
import { SessionProvider } from "next-auth/react";
const metadataBase = resolveMetadataBase();
export const metadata: Metadata = {
metadataBase,
title: {
template: "%s | yedir-ai",
default: "yedir-ai",
},
description: "AI design workspace for Canvas, Agent workflows, image editing, 3D/CAD, and local AI operations.",
icons: {
icon: [
{ url: "/api/favicon", sizes: "any" },
{ url: "/api/favicon", type: "image/x-icon" },
],
apple: "/api/favicon",
shortcut: "/api/favicon",
},
};
export async function generateMetadata(): Promise<Metadata> {
const settings = await getSiteSettings().catch(() => null);
const siteName = String(settings?.siteName || "").trim() || "AI Chatbot";
return {
metadataBase,
title: {
template: `%s | ${siteName}`,
default: siteName,
},
description:
"AI design workspace for Canvas, Agent workflows, image editing, 3D/CAD, and local AI operations.",
icons: {
icon: [
{ url: "/api/favicon", sizes: "any" },
{ url: "/api/favicon", type: "image/x-icon" },
],
apple: "/api/favicon",
shortcut: "/api/favicon",
},
};
}
function resolveMetadataBase() {
const candidate =