diff --git a/app/src/app/icon.png b/app/src/app/icon.png new file mode 100644 index 0000000..3d25e9a Binary files /dev/null and b/app/src/app/icon.png differ diff --git a/app/src/app/layout.tsx b/app/src/app/layout.tsx index 7ec7c0e..a4d370e 100644 --- a/app/src/app/layout.tsx +++ b/app/src/app/layout.tsx @@ -1,20 +1,30 @@ import type { Metadata } from 'next' import './globals.css' +import { prisma } from '@/lib/prisma' +import { Footer } from '@/components/storefront/Footer' -export const metadata: Metadata = { - title: 'ShopX - E-Commerce Platform', - description: 'Your online store', +export async function generateMetadata(): Promise { + try { + const rows = await prisma.siteSettings.findMany({ + where: { key: { in: ['site_name', 'site_description', 'favicon_url'] } }, + }) + const s = Object.fromEntries(rows.map((r) => [r.key, r.value])) + return { + title: (s.site_name as string) || 'ShopX', + description: (s.site_description as string) || 'Your online store', + icons: { icon: (s.favicon_url as string) || '/icon.png' }, + } + } catch { + return { title: 'ShopX', description: 'Your online store' } + } } -export default function RootLayout({ - children, -}: { - children: React.ReactNode -}) { +export default function RootLayout({ children }: { children: React.ReactNode }) { return ( - - + + {children} +