Spaces:
Runtime error
Runtime error
File size: 3,171 Bytes
13ae717 0b6b0ac 13ae717 829f9f6 13ae717 0b6b0ac 13ae717 0b6b0ac 13ae717 0b6b0ac 18dc372 13ae717 18dc372 13ae717 18dc372 13ae717 18dc372 13ae717 18dc372 13ae717 18dc372 13ae717 18dc372 13ae717 18dc372 13ae717 0b6b0ac 13ae717 0b6b0ac 13ae717 0b6b0ac 829f9f6 0b6b0ac ec1f23a 0b6b0ac 13ae717 0b6b0ac | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | /* eslint-disable @typescript-eslint/no-explicit-any */
import type { Metadata, Viewport } from "next";
import { Inter, PT_Sans } from "next/font/google";
import { cookies } from "next/headers";
import TanstackProvider from "@/components/providers/tanstack-query-provider";
import "@/assets/globals.css";
import { Toaster } from "@/components/ui/sonner";
import MY_TOKEN_KEY from "@/lib/get-cookie-name";
import { apiServer } from "@/lib/api";
import AppContext from "@/components/contexts/app-context";
import Script from "next/script";
const inter = Inter({
variable: "--font-inter-sans",
subsets: ["latin"],
});
const ptSans = PT_Sans({
variable: "--font-ptSans-mono",
subsets: ["latin"],
weight: ["400", "700"],
});
export const metadata: Metadata = {
title: "VybeCoder | Build with AI ✨",
description:
"Vybecoder is a web development tool that helps you build websites with AI, no code required. Let's deploy your website with DeepSite and enjoy the magic of AI.",
openGraph: {
title: "VybeCoder | Build with AI ✨",
description:
"VybeCoder is a web development tool that helps you build websites with AI, no code required. Let's deploy your website with DeepSite and enjoy the magic of AI.",
url: "https://deepsite.hf.co",
siteName: "VybeCoder",
images: [
{
url: "https://deepsite.hf.co/banner.png",
width: 1200,
height: 630,
alt: "VybeCoder Open Graph Image",
},
],
},
twitter: {
card: "summary_large_image",
title: "VybeCoder | Build with AI ✨",
description:
"VybeCoder is a web development tool that helps you build websites with AI, no code required. Let's deploy your website with DeepSite and enjoy the magic of AI.",
images: ["https://deepsite.hf.co/banner.png"],
},
appleWebApp: {
capable: true,
title: "DeepSite",
statusBarStyle: "black-translucent",
},
icons: {
icon: "/logo.svg",
shortcut: "/logo.svg",
apple: "/logo.svg",
},
};
export const viewport: Viewport = {
initialScale: 1,
maximumScale: 1,
themeColor: "#000000",
};
async function getMe() {
const cookieStore = await cookies();
const token = cookieStore.get(MY_TOKEN_KEY())?.value;
if (!token) return { user: null, errCode: null };
try {
const res = await apiServer.get("/me", {
headers: {
Authorization: `Bearer ${token}`,
},
});
return { user: res.data.user, errCode: null };
} catch (err: any) {
return { user: null, errCode: err.status };
}
}
export default async function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
const data = await getMe();
return (
<html lang="en">
<Script
defer
data-domain="deepsite.hf.co"
src="https://plausible.io/js/script.js"
></Script>
<body
className={`${inter.variable} ${ptSans.variable} antialiased bg-black dark h-[100dvh] overflow-hidden`}
>
<Toaster richColors position="bottom-center" />
<TanstackProvider>
<AppContext me={data}>{children}</AppContext>
</TanstackProvider>
</body>
</html>
);
}
|