Files
yslootahrobotics/src/app/layout.tsx
T
Najjar 0cb5693ca3
CI/CD / test-and-build (push) Waiting to run
CI/CD / deploy (push) Blocked by required conditions
chore(seo): point shop canonical/sitemap/llms to shop.yslootahrobotics.com
2026-07-06 14:16:54 +04:00

102 lines
4.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { Metadata, Viewport } from "next";
import { ErrorBoundary } from "@/components/ErrorBoundary";
import { I18nProvider } from "@/components/I18nProvider";
import JsonLd from "@/components/JsonLd";
import { SITE_URL, OG_IMAGE, siteName, organizationJsonLd, websiteJsonLd } from "@/lib/seo";
import "./globals.css";
export const metadata: Metadata = {
metadataBase: new URL(SITE_URL),
title: {
default: 'YS Lootah Robotics UAE Destination for Unitree & Pudu Robotics',
template: '%s | YS Lootah Robotics',
},
description:
'YS Lootah Robotics is the UAE sales destination for selected Unitree and Pudu Robotics solutions. Explore, configure, book demos, and deploy advanced robots across Dubai and the UAE.',
keywords: [
'YS Lootah Robotics',
'robotics Dubai',
'robotics UAE',
'robotics UAE destination',
'Unitree robots UAE',
'Pudu Robotics UAE',
'humanoid robots Dubai',
'quadruped robots UAE',
'service robots UAE',
'robot sales Dubai',
'book robot demo UAE',
'robotics showroom Dubai',
'robotics configuration UAE',
],
openGraph: {
type: 'website',
url: '/',
title: 'YS Lootah Robotics UAE Destination for Unitree & Pudu Robotics',
description:
'Advanced robotics. UAE access. Selected Unitree and Pudu solutions available through YS Lootah Robotics in Dubai.',
locale: 'en_AE',
siteName: 'YS Lootah Robotics',
images: [{ url: OG_IMAGE, width: 1200, height: 630, alt: siteName }],
},
twitter: {
card: 'summary_large_image',
title: 'YS Lootah Robotics UAE Destination for Unitree & Pudu Robotics',
description:
'The UAE’s dedicated destination for Unitree and Pudu Robotics sales, demo inquiries, and business deployment.',
images: [OG_IMAGE],
},
manifest: '/site.webmanifest',
robots: {
index: true,
follow: true,
googleBot: {
index: true,
follow: true,
'max-image-preview': 'large',
'max-snippet': -1,
'max-video-preview': -1,
},
},
};
export const viewport: Viewport = {
width: 'device-width',
initialScale: 1,
themeColor: '#0b0b0b',
};
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="en" dir="ltr" data-scroll-behavior="smooth">
<head>
<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossOrigin="anonymous" />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@200;300;400;500;600;700&display=swap" rel="stylesheet" />
</head>
<body suppressHydrationWarning>
<JsonLd data={[organizationJsonLd, websiteJsonLd]} />
<ErrorBoundary>
<I18nProvider>
{children}
{/* WhatsApp Floating Button */}
<a href="https://wa.me/971559482728" target="_blank" rel="noopener noreferrer" aria-label="Contact us on WhatsApp" className="wa-fab fixed z-50 flex items-center justify-center h-14 w-14 rounded-full bg-gradient-to-r from-[#25D366] to-[#128C7E] text-white shadow-lg shadow-[#25D366]/30 transition-all duration-300 ease-out hover:scale-110 hover:shadow-[#25D366]/50 hover:shadow-xl active:scale-95 group" style={{ right: 'max(1rem, env(safe-area-inset-right, 0px))' }}>
<span className="absolute inset-0 -z-10 rounded-full bg-gradient-to-r from-[#25D366] to-[#128C7E] opacity-0 blur-xl transition-opacity duration-300 group-hover:opacity-100"></span>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" className="tabler-icon tabler-icon-brand-whatsapp relative z-10 h-8 w-8">
<path d="M3 21l1.65 -3.8a9 9 0 1 1 3.4 2.9l-5.05 .9"></path>
<path d="M9 10a.5 .5 0 0 0 1 0v-1a.5 .5 0 0 0 -1 0v1a5 5 0 0 0 5 5h1a.5 .5 0 0 0 0 -1h-1a.5 .5 0 0 0 0 1"></path>
</svg>
<span aria-hidden="true" className="absolute inset-0 rounded-full border border-[#25D366] bg-[#25D366]/50 animate-[ping_2.2s_cubic-bezier(0,0,0.2,1)_infinite]"></span>
</a>
</I18nProvider>
</ErrorBoundary>
</body>
</html>
);
}