src/app/layout.tsx

component·app·1.9 KB · 67 lignes· Voir l'itinéraire
Annotation non disponible

Lance npm run annotate (nécessite ANTHROPIC_API_KEY dans .env.local) pour générer une annotation française par Claude Haiku 4.5.

3 exports

defaultviewportmetadata

Code source· tsx

import type { Metadata, Viewport } from "next";
import { NextIntlClientProvider } from "next-intl";
import { getLocale, getMessages } from "next-intl/server";
import "./globals.css";

export const viewport: Viewport = {
  width: "device-width",
  initialScale: 1,
  viewportFit: "cover",
};

export const metadata: Metadata = {
  title: "wari.pro — TOUT, simplement",
  description: "Découvrez les vitrines de commerçants, artisans et prestataires près de chez vous. Mode, beauté, santé, auto, services et bien plus. La marketplace de l'Afrique de l'Ouest.",
  keywords: ["marketplace", "Burkina Faso", "Afrique de l'Ouest", "vitrines", "commerçants", "Ouagadougou"],
  metadataBase: new URL("https://wari.pro"),
  icons: {
    icon: "/favicon.svg",
    shortcut: "/favicon.svg",
    apple: "/favicon.svg",
  },
  openGraph: {
    title: "wari.pro — TOUT EXISTE. TU VAS LE TROUVER.",
    description: "L'index officiel et action-able du commerce ouest-africain — formel et informel.",
    url: "https://wari.pro",
    siteName: "wari.pro",
    locale: "fr_FR",
    type: "website",
    images: [
      {
        url: "https://wari.pro/api/og",
        width: 1200,
        height: 630,
        alt: "wari.pro — TOUT EXISTE. TU VAS LE TROUVER.",
      },
    ],
  },
  twitter: {
    card: "summary_large_image",
    title: "wari.pro — TOUT EXISTE. TU VAS LE TROUVER.",
    description: "L'index officiel et action-able du commerce ouest-africain.",
    images: ["https://wari.pro/api/og"],
  },
  robots: {
    index: true,
    follow: true,
  },
};

export default async function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  const locale = await getLocale();
  const messages = await getMessages();

  return (
    <html lang={locale}>
      <body suppressHydrationWarning={true}>
        <NextIntlClientProvider messages={messages}>
          {children}
        </NextIntlClientProvider>
      </body>
    </html>
  );
}