Files
57dc8098-7bd2-412e-9b2d-f4d…/src/app/layout.tsx
2026-03-13 18:48:46 +00:00

81 lines
2.5 KiB
TypeScript

import type { Metadata } from "next";
import { Halant } from "next/font/google";
import { Inter } from "next/font/google";
import { Raleway } 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 raleway = Raleway({
variable: "--font-raleway",
subsets: ["latin"],
});
export const metadata: Metadata = {
title: "Professional Commercial Cleaning Services | Midwest Cleaning",
description: "Expert commercial cleaning for offices, retail, medical facilities, and apartments. Reliable, professional, spotless results. Get a free quote today.",
keywords: "commercial cleaning, office cleaning, retail cleaning, medical facility cleaning, apartment cleaning, post-construction cleaning, Midwest",
metadataBase: new URL("https://midwestprofessionalcleaning.com"),
alternates: {
canonical: "https://midwestprofessionalcleaning.com",
},
openGraph: {
title: "Midwest Professional Cleaning | Commercial Cleaning Services",
description: "Reliable, professional commercial cleaning across the Midwest. Offices, retail, medical facilities, apartments, and more.",
url: "https://midwestprofessionalcleaning.com",
siteName: "Midwest Professional Cleaning",
type: "website",
images: [
{
url: "https://midwestprofessionalcleaning.com/og-image.jpg",
alt: "Professional cleaning team",
},
],
},
twitter: {
card: "summary_large_image",
title: "Professional Commercial Cleaning | Midwest",
description: "Expert cleaning services for commercial properties across the Midwest",
images: ["https://midwestprofessionalcleaning.com/twitter-image.jpg"],
},
robots: {
index: true,
follow: true,
},
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body
className={`${halant.variable} ${inter.variable} ${raleway.variable} antialiased`}
>
<Tag />
{children}
<script
dangerouslySetInnerHTML={{
__html: `${getVisualEditScript()}`
}}
/>
</body>
</ServiceWrapper>
</html>
);
}