From 0a282da5b12ea604d2d0480cfd19b48c6534fb4a Mon Sep 17 00:00:00 2001 From: Dhravya Date: Sun, 2 Jun 2024 13:58:40 -0500 Subject: [PATCH] added top bar nav --- apps/web/app/(dash)/actions.ts | 48 ++++++++++++++++++++++++ apps/web/app/(dash)/chat/chatWindow.tsx | 8 +--- apps/web/app/(dash)/chat/page.tsx | 6 ++- apps/web/app/(dash)/header.tsx | 32 +++++++++++++--- apps/web/app/(dash)/home/page.tsx | 7 +++- apps/web/app/(dash)/home/queryinput.tsx | 36 +++++++++--------- apps/web/app/(dash)/layout.tsx | 11 +++++- apps/web/app/helpers/lib/searchParams.ts | 11 +++++- package.json | 1 + 9 files changed, 125 insertions(+), 35 deletions(-) create mode 100644 apps/web/app/(dash)/actions.ts diff --git a/apps/web/app/(dash)/actions.ts b/apps/web/app/(dash)/actions.ts new file mode 100644 index 00000000..70c2a567 --- /dev/null +++ b/apps/web/app/(dash)/actions.ts @@ -0,0 +1,48 @@ +"use server"; + +import { cookies, headers } from "next/headers"; +import { db } from "../helpers/server/db"; +import { sessions, users, space } from "../helpers/server/db/schema"; +import { eq } from "drizzle-orm"; +import { redirect } from "next/navigation"; + +export async function ensureAuth() { + const token = + cookies().get("next-auth.session-token")?.value ?? + cookies().get("__Secure-authjs.session-token")?.value ?? + cookies().get("authjs.session-token")?.value ?? + headers().get("Authorization")?.replace("Bearer ", ""); + + if (!token) { + return undefined; + } + + const sessionData = await db + .select() + .from(sessions) + .innerJoin(users, eq(users.id, sessions.userId)) + .where(eq(sessions.sessionToken, token)); + + if (!sessionData || sessionData.length < 0) { + return undefined; + } + + return { + user: sessionData[0]!.user, + session: sessionData[0]!, + }; +} + +export async function getSpaces() { + const data = await ensureAuth(); + if (!data) { + redirect("/signin"); + } + + const sp = await db + .select() + .from(space) + .where(eq(space.user, data.user.email)); + + return sp; +} diff --git a/apps/web/app/(dash)/chat/chatWindow.tsx b/apps/web/app/(dash)/chat/chatWindow.tsx index 8361bbf8..43c337ee 100644 --- a/apps/web/app/(dash)/chat/chatWindow.tsx +++ b/apps/web/app/(dash)/chat/chatWindow.tsx @@ -7,7 +7,7 @@ import { cn } from "@repo/ui/lib/utils"; import { motion } from "framer-motion"; import { useRouter } from "next/navigation"; -function ChatWindow({ q, spaces }: { q: string; spaces: number[] }) { +function ChatWindow({ q }: { q: string }) { const [layout, setLayout] = useState<"chat" | "initial">("initial"); const router = useRouter(); @@ -31,11 +31,7 @@ function ChatWindow({ q, spaces }: { q: string; spaces: number[] }) { className="max-w-3xl flex mx-auto w-full flex-col" >
- +
) : ( diff --git a/apps/web/app/(dash)/chat/page.tsx b/apps/web/app/(dash)/chat/page.tsx index 4ad4d468..9e28fda7 100644 --- a/apps/web/app/(dash)/chat/page.tsx +++ b/apps/web/app/(dash)/chat/page.tsx @@ -1,5 +1,5 @@ -import { chatSearchParamsCache } from "../../helpers/lib/searchParams"; import ChatWindow from "./chatWindow"; +import { chatSearchParamsCache } from "../../helpers/lib/searchParams"; function Page({ searchParams, @@ -8,7 +8,9 @@ function Page({ }) { const { firstTime, q, spaces } = chatSearchParamsCache.parse(searchParams); - return ; + console.log(spaces); + + return ; } export default Page; diff --git a/apps/web/app/(dash)/header.tsx b/apps/web/app/(dash)/header.tsx index bcbe9691..104c63bc 100644 --- a/apps/web/app/(dash)/header.tsx +++ b/apps/web/app/(dash)/header.tsx @@ -3,6 +3,7 @@ import Image from "next/image"; import Link from "next/link"; import Logo from "../../public/logo.svg"; import { AddIcon, ChatIcon } from "@repo/ui/icons"; +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@repo/ui/shadcn/tabs"; function Header() { return ( @@ -16,11 +17,32 @@ function Header() { /> -
- -
+ +
+ + +
+ + Account + Password + +
+
+ +
+ + Make changes to your account here. + + + Change your password here. + +
+