Files
35511c19-ed3d-4aed-a1c8-398…/src/app/layout.tsx
2026-03-12 16:54:16 +00:00

76 lines
2.3 KiB
TypeScript

import type { Metadata } from "next";
import { Halant } from "next/font/google";
import { Inter } from "next/font/google";
import { Manrope } from "next/font/google";
import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
import { getVisualEditScript } from "@/utils/visual-edit-script";
const halant = Halant({
variable: "--font-halant",
subsets: ["latin"],
weight: ["300", "400", "500", "600", "700"],
});
const inter = Inter({
variable: "--font-inter",
subsets: ["latin"],
});
const manrope = Manrope({
variable: "--font-manrope",
subsets: ["latin"],
});
export const metadata: Metadata = {
title: "Cyclone Prevention & Emergency Preparedness - Cyclone Guard",
description: "Real-time cyclone alerts, comprehensive preparation guides, and emergency resources to help communities stay safe during severe weather.",
keywords: "cyclone preparedness, hurricane emergency, storm alerts, disaster preparedness, family safety, emergency resources",
robots: {
index: true,
follow: true,
},
openGraph: {
title: "Cyclone Prevention & Emergency Preparedness - Cyclone Guard",
description: "Real-time cyclone alerts, comprehensive preparation guides, and emergency resources for community safety.",
type: "website",
siteName: "Cyclone Guard",
images: [
{
url: "http://img.b2bpic.net/free-photo/aerial-view-crystal-palace-london-july-2008_181624-9360.jpg",
alt: "Cyclone tracking and emergency preparedness",
},
],
},
twitter: {
card: "summary_large_image",
title: "Cyclone Prevention & Emergency Preparedness",
description: "Stay prepared with real-time alerts and comprehensive safety resources.",
images: ["http://img.b2bpic.net/free-photo/aerial-view-crystal-palace-london-july-2008_181624-9360.jpg"],
},
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body
className={`${halant.variable} ${inter.variable} ${manrope.variable} antialiased`}
>
<Tag />
{children}
<script
dangerouslySetInnerHTML={{
__html: `${getVisualEditScript()}`
}}
/>
</body>
</ServiceWrapper>
</html>
);
}