Update app metadata with multilingual support, SEO improvements, and structured OpenGraph and Twitter metadata. Add an "Administration" section in the sidebar for authenticated admin users. Improve role display and enable dynamic sorting in `HomeContent`. Extend UI badges with a success variant.
72 lines
1.8 KiB
TypeScript
72 lines
1.8 KiB
TypeScript
import type { Metadata } from "next";
|
|
import { Ubuntu_Mono, Ubuntu_Sans } from "next/font/google";
|
|
import { Toaster } from "@/components/ui/sonner";
|
|
import { AuthProvider } from "@/providers/auth-provider";
|
|
import "./globals.css";
|
|
|
|
const ubuntuSans = Ubuntu_Sans({
|
|
variable: "--font-ubuntu-sans",
|
|
subsets: ["latin"],
|
|
});
|
|
|
|
const ubuntuMono = Ubuntu_Mono({
|
|
variable: "--font-geist-mono",
|
|
weight: ["400", "700"],
|
|
subsets: ["latin"],
|
|
});
|
|
|
|
export const metadata: Metadata = {
|
|
title: {
|
|
default: "MemeGoat | Partagez vos meilleurs mèmes",
|
|
template: "%s | MemeGoat",
|
|
},
|
|
description:
|
|
"MemeGoat est la plateforme ultime pour découvrir, créer et partager les mèmes les plus drôles de la communauté des chèvres.",
|
|
keywords: ["meme", "drôle", "goat", "chèvre", "humour", "partage", "gif"],
|
|
authors: [{ name: "MemeGoat Team" }],
|
|
creator: "MemeGoat Team",
|
|
openGraph: {
|
|
type: "website",
|
|
locale: "fr_FR",
|
|
url: "https://memegoat.local",
|
|
siteName: "MemeGoat",
|
|
title: "MemeGoat | Partagez vos meilleurs mèmes",
|
|
description:
|
|
"La plateforme ultime pour les mèmes. Rejoignez le troupeau !",
|
|
images: [
|
|
{
|
|
url: "/memegoat-og.png",
|
|
width: 1200,
|
|
height: 630,
|
|
alt: "MemeGoat",
|
|
},
|
|
],
|
|
},
|
|
twitter: {
|
|
card: "summary_large_image",
|
|
title: "MemeGoat | Partagez vos meilleurs mèmes",
|
|
description: "La plateforme ultime pour les mèmes. Rejoignez le troupeau !",
|
|
images: ["/memegoat-og.png"],
|
|
},
|
|
icons: "/memegoat-color.svg",
|
|
};
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: Readonly<{
|
|
children: React.ReactNode;
|
|
}>) {
|
|
return (
|
|
<html lang="fr" suppressHydrationWarning>
|
|
<body
|
|
className={`${ubuntuSans.variable} ${ubuntuMono.variable} antialiased`}
|
|
>
|
|
<AuthProvider>
|
|
{children}
|
|
<Toaster />
|
|
</AuthProvider>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|