157 lines
5.0 KiB
TypeScript

import type { Metadata } from "next";
import { Playfair_Display } from "next/font/google";
import "./globals.css";
import ScrollToTop from "@/components/ScrollToTop/ScrollToTop";
import Navbar from '@/components/Navbar/Navbar';
import Script from "next/script";
const playfairDisplay = Playfair_Display({
subsets: ["latin"],
variable: "--font-heading",
display: "swap",
});
// Note: Canva Sans is loaded via CDN in the head section below
// We'll use system fonts as fallback in the CSS variables
export const metadata: Metadata = {
metadataBase: new URL("https://antalya.metatronnest.com"),
title: {
default: "Antalya Restaurant - Authentic Turkish Cuisine",
template: "%s | Antalya Restaurant"
},
description: "Experience the finest authentic Turkish cuisine at Antalya Restaurant. Enjoy our delicious kebabs, mezes, and desserts in a warm, inviting atmosphere.",
keywords: ["Turkish restaurant", "Antalya restaurant", "Turkish cuisine", "kebabs", "meze", "dining", "authentic food", "halal food", "middle eastern food"],
authors: [{ name: "Antalya Restaurant" }],
creator: "Antalya Restaurant",
publisher: "Antalya Restaurant",
robots: {
index: true,
follow: true,
googleBot: {
index: true,
follow: true,
},
},
alternates: {
canonical: "./",
},
openGraph: {
title: "Antalya Restaurant - Authentic Turkish Cuisine",
description: "Experience the finest authentic Turkish cuisine at Antalya Restaurant. From charcoal-grilled kebabs to handmade baklava.",
url: "https://antalya.metatronnest.com",
siteName: "Antalya Restaurant",
images: [
{
url: "/images/hero-bg.jpg",
width: 1200,
height: 630,
alt: "Antalya Restaurant Interior",
},
],
locale: "en_CA",
type: "website",
},
twitter: {
card: "summary_large_image",
title: "Antalya Restaurant - Authentic Turkish Cuisine",
description: "Experience the finest authentic Turkish cuisine at Antalya Restaurant.",
images: ["/images/hero-bg.jpg"],
},
};
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
const jsonLd = {
"@context": "https://schema.org",
"@type": "Restaurant",
name: "Antalya Restaurant",
url: "https://antalya.metatronnest.com",
image: "https://antalya.metatronnest.com/images/hero-bg.jpg",
description: "Authentic Turkish cuisine featuring charcoal-grilled kebabs, fresh mezes, and traditional desserts.",
address: {
"@type": "PostalAddress",
streetAddress: "1187 Fischer-Hallman Rd #435",
addressLocality: "Kitchener",
addressRegion: "ON",
postalCode: "N2E 4H9",
addressCountry: "CA",
},
telephone: "+1-519-581-6363",
servesCuisine: ["Turkish", "Middle Eastern", "Halal"],
priceRange: "$$",
openingHoursSpecification: [
{
"@type": "OpeningHoursSpecification",
dayOfWeek: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
opens: "11:00",
closes: "22:00"
}
],
sameAs: [
"https://www.facebook.com/antalyakebabgrill",
// Add other social links if available
],
};
return (
<html lang="en" className={playfairDisplay.variable}>
<head>
<link rel="preconnect" href="https://fonts.cdnfonts.com" />
<link href="https://fonts.cdnfonts.com/css/canva-sans" rel="stylesheet" />
{/* Preconnect for external scripts */}
<link rel="preconnect" href="https://www.googletagmanager.com" />
<link rel="preconnect" href="https://connect.facebook.net" />
<link rel="preconnect" href="https://scripts.clarity.ms" />
</head>
<body>
{/* Google Tag Manager */}
<Script
id="gtm-script"
strategy="afterInteractive"
dangerouslySetInnerHTML={{
__html: `
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-YZNXD8G2Y7');
`,
}}
/>
{/* Clarity Tracking */}
<Script
id="clarity-script"
strategy="afterInteractive"
dangerouslySetInnerHTML={{
__html: `
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "tiwefg4i5m");
`,
}}
/>
{/* Schema.org JSON-LD */}
<Script
id="schema-restaurant"
type="application/ld+json"
strategy="afterInteractive"
dangerouslySetInnerHTML={{
__html: JSON.stringify(jsonLd),
}}
/>
<Navbar />
{children}
<ScrollToTop />
</body>
</html>
)
}