enzostvs HF Staff commited on
Commit
44ed7dd
·
1 Parent(s): e397ee2
Files changed (1) hide show
  1. app/deepsite/layout.tsx +108 -0
app/deepsite/layout.tsx ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import type { Metadata, Viewport } from "next";
2
+ import { Geist, Geist_Mono } from "next/font/google";
3
+ import { NextStepProvider } from "nextstepjs";
4
+ import Script from "next/script";
5
+
6
+ import "@/app/globals.css";
7
+ import { ThemeProvider } from "@/components/providers/theme";
8
+ import { AuthProvider } from "@/components/providers/session";
9
+ import { Toaster } from "@/components/ui/sonner";
10
+ import { ReactQueryProvider } from "@/components/providers/react-query";
11
+ import { generateSEO, generateStructuredData } from "@/lib/seo";
12
+ import { NotAuthorizedDomain } from "@/components/not-authorized";
13
+
14
+ const geistSans = Geist({
15
+ variable: "--font-geist-sans",
16
+ subsets: ["latin"],
17
+ });
18
+
19
+ const geistMono = Geist_Mono({
20
+ variable: "--font-geist-mono",
21
+ subsets: ["latin"],
22
+ });
23
+
24
+ export const metadata: Metadata = {
25
+ ...generateSEO({
26
+ title: "DeepSite | Build with AI ✨",
27
+ description:
28
+ "DeepSite 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.",
29
+ path: "/",
30
+ }),
31
+ appleWebApp: {
32
+ capable: true,
33
+ title: "DeepSite",
34
+ statusBarStyle: "black-translucent",
35
+ },
36
+ icons: {
37
+ icon: "/logo.svg",
38
+ shortcut: "/logo.svg",
39
+ apple: "/logo.svg",
40
+ },
41
+ verification: {
42
+ google: process.env.GOOGLE_SITE_VERIFICATION,
43
+ },
44
+ };
45
+
46
+ export const viewport: Viewport = {
47
+ initialScale: 1,
48
+ maximumScale: 1,
49
+ themeColor: "#4f46e5",
50
+ };
51
+
52
+ export default async function RootLayout({
53
+ children,
54
+ }: Readonly<{
55
+ children: React.ReactNode;
56
+ }>) {
57
+ const structuredData = generateStructuredData("WebApplication", {
58
+ name: "DeepSite",
59
+ description: "Build websites with AI, no code required",
60
+ url: "https://huggingface.co/deepsite",
61
+ });
62
+ const organizationData = generateStructuredData("Organization", {
63
+ name: "DeepSite",
64
+ url: "https://huggingface.co/deepsite",
65
+ });
66
+
67
+ return (
68
+ <html lang="en" suppressHydrationWarning>
69
+ <body
70
+ className={`${geistSans.variable} ${geistMono.variable} antialiased`}
71
+ >
72
+ <script
73
+ type="application/ld+json"
74
+ dangerouslySetInnerHTML={{
75
+ __html: JSON.stringify(structuredData),
76
+ }}
77
+ />
78
+ <script
79
+ type="application/ld+json"
80
+ dangerouslySetInnerHTML={{
81
+ __html: JSON.stringify(organizationData),
82
+ }}
83
+ />
84
+ <Script
85
+ defer
86
+ data-domain="deepsite.hf.co"
87
+ src="https://plausible.io/js/script.js"
88
+ />
89
+ <Toaster richColors />
90
+ <AuthProvider>
91
+ <ReactQueryProvider>
92
+ <ThemeProvider
93
+ attribute="class"
94
+ defaultTheme="dark"
95
+ enableSystem
96
+ disableTransitionOnChange
97
+ >
98
+ <NextStepProvider>
99
+ {children}
100
+ <NotAuthorizedDomain />
101
+ </NextStepProvider>
102
+ </ThemeProvider>
103
+ </ReactQueryProvider>
104
+ </AuthProvider>
105
+ </body>
106
+ </html>
107
+ );
108
+ }