91 lines
2.2 KiB
TypeScript
91 lines
2.2 KiB
TypeScript
import type { Metadata } from "next";
|
|
import { Manrope, Sora, DM_Sans } from "next/font/google";
|
|
import { Footer } from "@/components/shared/Footer";
|
|
import { siteConfig } from "@/data/site-config";
|
|
import "./globals.css";
|
|
|
|
const manrope = Manrope({
|
|
variable: "--font-manrope",
|
|
subsets: ["latin"],
|
|
weight: ["400", "500", "600", "700"],
|
|
});
|
|
|
|
const sora = Sora({
|
|
variable: "--font-sora",
|
|
subsets: ["latin"],
|
|
weight: ["400", "500", "600", "700"],
|
|
});
|
|
|
|
const dmSans = DM_Sans({
|
|
variable: "--font-dm-sans",
|
|
subsets: ["latin"],
|
|
weight: ["400", "500", "600", "700"],
|
|
});
|
|
|
|
const title =
|
|
"Tenext Technologies — Enterprise Digital Transformation, Cloud, Data & AI";
|
|
const description =
|
|
"Tenext Technologies helps enterprises transform with cloud, data, AI, and product engineering — delivering predictable outcomes, lower total cost of ownership, and accelerated time to value.";
|
|
|
|
export const metadata: Metadata = {
|
|
metadataBase: new URL(siteConfig.url),
|
|
title: {
|
|
default: title,
|
|
template: "%s | Tenext Technologies",
|
|
},
|
|
description,
|
|
alternates: { canonical: "/" },
|
|
openGraph: {
|
|
type: "website",
|
|
siteName: siteConfig.legalName,
|
|
url: siteConfig.url,
|
|
title,
|
|
description,
|
|
},
|
|
twitter: {
|
|
card: "summary_large_image",
|
|
title,
|
|
description,
|
|
},
|
|
};
|
|
|
|
const organizationJsonLd = {
|
|
"@context": "https://schema.org",
|
|
"@type": "Organization",
|
|
name: siteConfig.legalName,
|
|
url: siteConfig.url,
|
|
email: siteConfig.email,
|
|
telephone: siteConfig.phoneRaw,
|
|
address: {
|
|
"@type": "PostalAddress",
|
|
streetAddress: siteConfig.address.line1,
|
|
addressLocality: "Coimbatore",
|
|
addressCountry: "IN",
|
|
},
|
|
sameAs: siteConfig.socials.map((s) => s.url),
|
|
};
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: Readonly<{
|
|
children: React.ReactNode;
|
|
}>) {
|
|
return (
|
|
<html
|
|
lang="en"
|
|
className={`${manrope.variable} ${sora.variable} ${dmSans.variable}`}
|
|
>
|
|
<body suppressHydrationWarning>
|
|
<script
|
|
type="application/ld+json"
|
|
dangerouslySetInnerHTML={{
|
|
__html: JSON.stringify(organizationJsonLd),
|
|
}}
|
|
/>
|
|
{children}
|
|
<Footer />
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|