Files
arjmand-pharmacy/app/layout.tsx
T

56 lines
2.0 KiB
TypeScript

import type { Metadata } from "next";
import { Vazirmatn } from "next/font/google";
import "./globals.css";
import { TopBar } from "@/components/layout/TopBar";
import { Header } from "@/components/layout/Header";
import { Footer } from "@/components/layout/Footer";
import { getNavCategories } from "@/lib/categories";
import { getLogoSrc } from "@/lib/media";
import { getBusinessInfo, metaTagsToOther } from "@/lib/meshkee";
const vazir = Vazirmatn({
subsets: ["arabic", "latin"],
variable: "--font-vazir",
display: "swap",
weight: ["300", "400", "500", "600", "700", "800"],
});
export async function generateMetadata(): Promise<Metadata> {
const businessInfo = await getBusinessInfo();
const other = metaTagsToOther(businessInfo?.metaTags);
return {
title: "داروخانه دکتر ارجمند | صفحه اصلی",
description:
"خرید آنلاین دارو، مکمل، محصولات بهداشتی و آرایشی از داروخانه دکتر ارجمند در قم، سالاریه.",
...(other ? { other } : {}),
};
}
export default async function RootLayout({ children }: { children: React.ReactNode }) {
const [logoSrc, categories, businessInfo] = await Promise.all([
Promise.resolve(getLogoSrc()),
getNavCategories(),
getBusinessInfo(),
]);
return (
<html lang="fa" dir="rtl" className={vazir.variable}>
<head>
<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=Fredoka:wght@400;500;600;700&display=swap"
rel="stylesheet"
/>
</head>
<body className={`${vazir.className} min-h-screen antialiased`}>
<TopBar />
<Header logoSrc={logoSrc} categories={categories} />
<main className="pb-12">{children}</main>
<Footer logoSrc={logoSrc} trustBadges={businessInfo?.trustBadges} />
</body>
</html>
);
}