diff --git a/apps/database-new/README.md b/apps/database-new/README.md
index 6a0fe0dd86e..168d7a8dd54 100644
--- a/apps/database-new/README.md
+++ b/apps/database-new/README.md
@@ -1,4 +1,4 @@
-# database.new
+# database.design
## Overview
diff --git a/apps/database-new/app/[threadId]/layout.tsx b/apps/database-new/app/[threadId]/layout.tsx
index 23eedcb59ce..a16244fc4c6 100644
--- a/apps/database-new/app/[threadId]/layout.tsx
+++ b/apps/database-new/app/[threadId]/layout.tsx
@@ -1,10 +1,16 @@
'use client'
import { Chat } from '@/components/Chat/Chat'
+import SaveSchemaDropdown from '@/components/Header/SaveSchemaDropdown'
+import ToggleCodeEditorButton from '@/components/Header/ToggleCodeEditorButton'
export default function Layout({ children }: { children: React.ReactNode }) {
return (
-
+
)
diff --git a/apps/database-new/app/api/ai/sql/threads/[threadId]/delete/route.ts b/apps/database-new/app/api/ai/sql/threads/[threadId]/delete/route.ts
new file mode 100644
index 00000000000..ac5b4e0554f
--- /dev/null
+++ b/apps/database-new/app/api/ai/sql/threads/[threadId]/delete/route.ts
@@ -0,0 +1,13 @@
+import OpenAI from 'openai'
+
+const openai = new OpenAI()
+
+export async function POST(req: Request, { params }: { params: { threadId: string } }) {
+ if (!req.body) {
+ return Response.error()
+ }
+
+ const kill = await openai.beta.threads.del(params.threadId)
+ console.log({ kill })
+ return Response.json({})
+}
diff --git a/apps/database-new/app/api/ai/sql/threads/create/route.ts b/apps/database-new/app/api/ai/sql/threads/create/route.ts
index 5ad61c37675..e377f31f1c8 100644
--- a/apps/database-new/app/api/ai/sql/threads/create/route.ts
+++ b/apps/database-new/app/api/ai/sql/threads/create/route.ts
@@ -1,6 +1,7 @@
import { cookies } from 'next/headers'
import { createClient } from '@/lib/supabase/server'
import OpenAI from 'openai'
+import { revalidatePath } from 'next/cache'
const openai = new OpenAI()
@@ -52,5 +53,7 @@ export async function POST(req: Request) {
console.error(error)
}
+ revalidatePath('/profile')
+
return Response.json({ threadId: thread.id, runId: run.id })
}
diff --git a/apps/database-new/app/faq/page.tsx b/apps/database-new/app/faq/page.tsx
new file mode 100644
index 00000000000..2f46f1fb645
--- /dev/null
+++ b/apps/database-new/app/faq/page.tsx
@@ -0,0 +1,74 @@
+import type { Metadata } from 'next'
+
+type faq = {
+ question: string
+ answer: string
+}
+
+export const metadata: Metadata = {
+ title: 'database.design | Faq',
+}
+
+const FAQS = [
+ {
+ question: 'What is database.design?',
+ answer:
+ 'Lorem ipsum dolor sit, amet consectetur adipisicing elit. Doloremque molestias dicta nobis explicabo maiores officia blanditiis cupiditate, quibusdam debitis! Dignissimos ducimus aut temporibus ea, repellat consectetur quisquam molestiae recusandae rem.',
+ },
+ {
+ question: 'How does it work?',
+ answer:
+ 'Lorem ipsum dolor sit, amet consectetur adipisicing elit. Doloremque molestias dicta nobis explicabo maiores officia blanditiis cupiditate, quibusdam debitis! Dignissimos ducimus aut temporibus ea, repellat consectetur quisquam molestiae recusandae rem.',
+ },
+ {
+ question: 'Can I see the code?',
+ answer:
+ 'Lorem ipsum dolor sit, amet consectetur adipisicing elit. Doloremque molestias dicta nobis explicabo maiores officia blanditiis cupiditate, quibusdam debitis! Dignissimos ducimus aut temporibus ea, repellat consectetur quisquam molestiae recusandae rem.',
+ },
+ {
+ question: 'Can I use this for non-Postgres databases?',
+ answer:
+ 'Lorem ipsum dolor sit, amet consectetur adipisicing elit. Doloremque molestias dicta nobis explicabo maiores officia blanditiis cupiditate, quibusdam debitis! Dignissimos ducimus aut temporibus ea, repellat consectetur quisquam molestiae recusandae rem.',
+ },
+]
+
+function slugify(str: string) {
+ return str
+ .toLowerCase() // Convert to lowercase
+ .replace(/\s+/g, '-') // Replace spaces with hyphens
+ .replace(/[^\w-]+/g, '') // Remove non-word characters except hyphens
+ .replace(/--+/g, '-') // Replace multiple consecutive hyphens with a single hyphen
+ .replace(/^-+|-+$/g, '') // Remove leading and trailing hyphens
+}
+
+const FAQ = async () => {
+ return (
+
+
+
+
+ Frequently Asked Questions
+
+
+ Everything you have ever wondered about database.design
+
+
+
+
+
+ )
+}
+
+export default FAQ
diff --git a/apps/database-new/app/layout.tsx b/apps/database-new/app/layout.tsx
index eb0b1175b4b..34909e96f57 100644
--- a/apps/database-new/app/layout.tsx
+++ b/apps/database-new/app/layout.tsx
@@ -1,9 +1,10 @@
import '@ui/layout/ai-icon-animation/ai-icon-animation-style.module.css'
import './globals.css'
-import Header from '@/components/Header'
+import Header from '@/components/Header/Header'
import { ReactQueryProvider, ThemeProvider } from '@/components/providers'
import type { Metadata } from 'next'
+import Footer from '@/components/Footer'
const defaultUrl = process.env.VERCEL_URL
? `https://${process.env.VERCEL_URL}`
@@ -11,7 +12,7 @@ const defaultUrl = process.env.VERCEL_URL
export const metadata: Metadata = {
metadataBase: new URL(defaultUrl),
- title: 'database.new',
+ title: 'database.design',
description: 'Generate schemas from your ideas',
}
@@ -26,6 +27,7 @@ export default function RootLayout({ children }: { children: React.ReactNode })
{children}
+
diff --git a/apps/database-new/app/login/page.tsx b/apps/database-new/app/login/page.tsx
index 7e5551a48fb..d4c9830477c 100644
--- a/apps/database-new/app/login/page.tsx
+++ b/apps/database-new/app/login/page.tsx
@@ -1,8 +1,7 @@
-import Link from 'next/link'
-import { headers, cookies } from 'next/headers'
-import { redirect } from 'next/navigation'
import { createClient } from '@/lib/supabase/server'
-import { ArrowLeft } from 'lucide-react'
+import { Github } from 'lucide-react'
+import { cookies, headers } from 'next/headers'
+import { redirect } from 'next/navigation'
export default function Login({ searchParams }: { searchParams: { message: string } }) {
const signUp = async (formData: FormData) => {
@@ -14,9 +13,7 @@ export default function Login({ searchParams }: { searchParams: { message: strin
const { data, error } = await supabase.auth.signInWithOAuth({
provider: 'github',
- options: {
- redirectTo: `${origin}/auth/callback`,
- },
+ options: { redirectTo: `${origin}/auth/callback` },
})
if (error) {
@@ -28,23 +25,23 @@ export default function Login({ searchParams }: { searchParams: { message: strin
}
return (
-