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 { redirect } from "next/navigation"; import { remark } from "remark"; import remarkHtml from "remark-html"; export default async function DocumentPage({ params, }: { params: { id: string }; }) { const supabase = await createClient(); const { data: { user }, } = await supabase.auth.getUser(); if (!user) { return redirect("/login"); } // Fetch the document details based on the ID from params const { data: document, error } = await supabase .from("documents") .select("*") .eq("id", params.id) .single(); if (error || !document) { console.error("Error fetching document:", error); } // If the document doesn't exist, redirect to the documents page or handle it accordingly if (!document) { return redirect("/dashboard"); } const { data: documents, error: documentsError } = await supabase .from("documents") .select("id, file_name, created_at, owner") .eq("owner", user.id) .order("created_at", { ascending: false }); if (documentsError) { console.error("Error fetching documents:", error); return
Error loading documents.
; } const pages = (document.ocr_data as any).pages.map( (page: any) => page.markdown ); const processedContent = await remark() .use(remarkHtml) .process(pages.join(" ")); return ( { return { name: d.file_name, url: `/dashboard/documents/${d.id}`, emoji: "📄", }; })} />
{document.file_name || "Document Details"}
); }