77 lines
2.1 KiB
TypeScript

import UploadZone from "@/components/UploadZone";
import { AppSidebar } from "@/components/app-sidebar";
import { NavActions } from "@/components/nav-actions";
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbList,
BreadcrumbPage,
} from "@/components/ui/breadcrumb";
import { Separator } from "@/components/ui/separator";
import {
SidebarInset,
SidebarProvider,
SidebarTrigger,
} from "@/components/ui/sidebar";
import { createClient } from "@/utils/supabase/server";
import { CloudUpload } from "lucide-react";
import { redirect } from "next/navigation";
export default async function Page() {
const supabase = await createClient();
const {
data: { user },
} = await supabase.auth.getUser();
if (!user) {
return redirect("/login");
}
const { data: documents, error } = await supabase
.from("documents")
.select("id, file_name, created_at, owner")
.eq("owner", user.id)
.order("created_at", { ascending: false });
if (error) {
console.error("Error fetching documents:", error);
return <div>Error loading documents.</div>;
}
return (
<SidebarProvider>
<AppSidebar
documents={documents.map((d) => {
return {
name: d.file_name,
url: `/dashboard/documents/${d.id}`,
emoji: "📄",
};
})}
/>
<SidebarInset>
<header className="flex h-14 shrink-0 items-center gap-2">
<div className="flex flex-1 items-center gap-2 px-3">
<SidebarTrigger />
<Separator
orientation="vertical"
className="mr-2 data-[orientation=vertical]:h-4"
/>
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbPage className="line-clamp-1">
Upload a Document
</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
</div>
</header>
<UploadZone user={user} />
</SidebarInset>
</SidebarProvider>
);
}