Files
thoughts/thoughts-frontend/app/layout.tsx
Gabriel Kaszewski 9aee4ceb6d
Some checks failed
lint / lint (push) Has been cancelled
test / unit (push) Has been cancelled
test / integration (push) Has been cancelled
feat: v2 rewrite — hexagonal arch, ActivityPub federation, NATS, deployment-ready (#1)
2026-05-16 09:42:40 +00:00

65 lines
1.6 KiB
TypeScript

import type { Metadata } from "next";
import "./globals.css";
import { AuthProvider } from "@/hooks/use-auth";
import { Toaster } from "@/components/ui/sonner";
import { Header } from "@/components/header";
import localFont from "next/font/local";
import InstallPrompt from "@/components/install-prompt";
export const metadata: Metadata = {
title: {
default: "Thoughts",
template: "%s · Thoughts",
},
description:
"A federated social network for short-form thoughts. Follow people across Mastodon, Pixelfed, and the wider Fediverse.",
openGraph: {
type: "website",
siteName: "Thoughts",
title: "Thoughts",
description:
"A federated social network for short-form thoughts. Follow people across the Fediverse.",
},
twitter: {
card: "summary",
title: "Thoughts",
description:
"A federated social network for short-form thoughts. Follow people across the Fediverse.",
},
};
const frutiger = localFont({
src: [
{
path: "./frutiger.woff",
weight: "normal",
style: "normal",
},
{
path: "./frutiger-bold.woff",
weight: "bold",
style: "normal",
},
],
variable: "--font-frutiger",
});
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en">
<body className={`${frutiger.className} antialiased`}>
<AuthProvider>
<Header />
<main className="flex-1">{children}</main>
<InstallPrompt />
<Toaster />
</AuthProvider>
</body>
</html>
);
}