Files
brb-store/app/layout.tsx
T
Alireza HassaniandCursor 8e14748b48 Wire Meshkee catalog: products, blog, mega menu, and product search.
Catalog-only (no cart); search targets store items and products pages.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 16:04:31 +03:30

48 lines
1.3 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 { 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 = {
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>
);
}