templates2.Store.Next/app/layout.tsx
w4c-templates bb75e7c742
Some checks are pending
CI / quality (push) Waiting to run
chore(template): publish Store.Next
2026-10-11 23:24:13 +03:00

36 lines
1.4 KiB
TypeScript

import type { Metadata } from 'next';
import { CartProvider } from '@/components/cart/CartProvider';
import './globals.css';
const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || 'http://localhost:3000';
export const metadata: Metadata = {
metadataBase: new URL(siteUrl),
title: { default: 'Acme Store', template: '%s · Acme Store' },
description: 'A ready-to-run storefront: catalog, cart, checkout, payments and admin.',
openGraph: {
type: 'website',
siteName: 'Acme Store',
url: '/',
title: 'Acme Store',
description: 'A ready-to-run storefront: catalog, cart, checkout, payments and admin.',
images: [{ url: '/art/og.webp', width: 1536, height: 1024, alt: 'Acme Store — everyday goods, made to last' }],
},
robots: { index: true, follow: true },
};
const themeScript = `document.documentElement.classList.add('js');try{var t=localStorage.getItem('theme');var d=t? t==='dark' : matchMedia('(prefers-color-scheme: dark)').matches;if(d)document.documentElement.classList.add('dark');}catch(e){}`;
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="en" suppressHydrationWarning>
<head>
<script dangerouslySetInnerHTML={{ __html: themeScript }} />
</head>
<body className="min-h-screen antialiased">
<CartProvider>{children}</CartProvider>
</body>
</html>
);
}