Files
Alireza HassaniandCursor 24b5649abd Polish storefront SEO, specials, and homepage UX.
Publish Meshkee sitemap-config, map product-source specials without variants, restore hero autoplay, and tighten page heroes, product images, and section order.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-22 21:48:00 +03:30

50 lines
1.4 KiB
TypeScript

import type { Metadata } from "next";
import { Montserrat, Vazirmatn } from "next/font/google";
import "./globals.css";
import { Footer } from "@/components/layout/Footer";
import { Header } from "@/components/layout/Header";
import { TopBar } from "@/components/layout/TopBar";
import { getNavCategories } from "@/lib/categories";
import { websiteDomain } from "@/lib/config";
import { site } from "@/lib/data";
const vazir = Vazirmatn({
subsets: ["arabic", "latin"],
variable: "--font-vazir",
display: "swap",
weight: ["300", "400", "500", "600", "700", "800"],
});
const montserrat = Montserrat({
subsets: ["latin"],
variable: "--font-montserrat",
display: "swap",
weight: ["400", "500", "600", "700"],
});
export const metadata: Metadata = {
metadataBase: new URL(`https://${websiteDomain}`),
title: {
default: `${site.name} | ${site.tagline}`,
template: `%s | ${site.name}`,
},
description: site.description,
keywords: site.keywords,
icons: { icon: "/favicon.ico" },
};
export default async function RootLayout({ children }: { children: React.ReactNode }) {
const categories = await getNavCategories();
return (
<html lang="fa" dir="rtl" className={`${vazir.variable} ${montserrat.variable}`}>
<body className={`${vazir.className} min-h-screen antialiased`}>
<TopBar />
<Header categories={categories} />
<main>{children}</main>
<Footer />
</body>
</html>
);
}