/* 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"; import { BRAND_NAME, BRAND_ICON_SRC } from "@/lib/branding"; 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: `${BRAND_NAME} | Build with AI ✨`, description: `${BRAND_NAME} is a web development tool that helps you build websites with AI, no code required. Let's deploy your website and enjoy the magic of AI.`, openGraph: { title: `${BRAND_NAME} | Build with AI ✨`, description: `${BRAND_NAME} is a web development tool that helps you build websites with AI, no code required. Let's deploy your website and enjoy the magic of AI.`, url: "https://deepsite.hf.co", siteName: BRAND_NAME, images: [ { url: "https://deepsite.hf.co/banner.png", width: 1200, height: 630, alt: `${BRAND_NAME} Open Graph Image`, }, ], }, twitter: { card: "summary_large_image", title: `${BRAND_NAME} | Build with AI ✨`, description: `${BRAND_NAME} is a web development tool that helps you build websites with AI, no code required. Let's deploy your website and enjoy the magic of AI.`, images: ["https://deepsite.hf.co/banner.png"], }, appleWebApp: { capable: true, title: BRAND_NAME, statusBarStyle: "black-translucent", }, icons: { icon: BRAND_ICON_SRC, shortcut: BRAND_ICON_SRC, apple: BRAND_ICON_SRC, }, }; 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 }; } } // if domain isn't deepsite.hf.co or enzostvs-deepsite.hf.space redirect to deepsite.hf.co export default async function RootLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { const data = await getMe(); return (
{/* Iframe embed warning removed; EMBED_MODE controls behavior */}