skyflytravel.hu/app/layout.tsx

83 lines
2.3 KiB
TypeScript

import type { Metadata } from "next";
import { Inter } from "next/font/google";
import "./globals.css";
import { translations } from "@/lib/translations";
import { GoogleTagManager, GoogleAnalytics } from '@next/third-parties/google'
const inter = Inter({
variable: "--font-inter",
subsets: ["latin"],
});
const meta = translations.hu.meta
export const metadata: Metadata = {
title: meta.title,
description: meta.description,
keywords: meta.keywords,
metadataBase: new URL('https://skyflytravel.hu'),
alternates: {
canonical: '/',
languages: {
'hu-HU': '/',
'en-US': '/', // Since it's a single page app with client side lang switch, we point back for now
},
},
openGraph: {
title: meta.title,
description: meta.description,
url: 'https://skyflytravel.hu',
siteName: 'SkyFly Travel',
locale: 'hu_HU',
type: 'website',
images: [
{
url: '/images/hero-main.jpg', // Fallback until a better one is generated
width: 1200,
height: 630,
alt: 'SkyFly Travel - Reptéri transzfer',
},
],
},
twitter: {
card: 'summary_large_image',
title: meta.title,
description: meta.description,
images: ['/images/hero-main.jpg'],
},
};
import { LanguageProvider } from "@/lib/language-context";
import ScrollToTop from "@/components/scroll-to-top";
import { JsonLd } from "@/components/json-ld";
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="hu" className="scroll-smooth">
<GoogleTagManager gtmId={process.env.NEXT_PUBLIC_GTM_ID || 'GTM-MSGML3M2'} />
<GoogleAnalytics gaId={process.env.NEXT_PUBLIC_GA_ID || 'G-Q36J1P7SJJ'} />
<body
className={`${inter.variable} font-sans antialiased`}
>
<a
href="#main-content"
className="sr-only focus:not-sr-only focus:fixed focus:top-4 focus:left-4 focus:z-[100] focus:bg-primary focus:text-white focus:px-6 focus:py-3 focus:rounded-full focus:font-bold focus:shadow-2xl transition-all"
>
Ugrás a tartalomra
</a>
<LanguageProvider>
<JsonLd />
<main id="main-content">
{children}
</main>
<ScrollToTop />
</LanguageProvider>
</body>
</html>
);
}