import { createFileRoute, Link } from "@tanstack/react-router"; import { useEffect, useState } from "react"; import { ProtectedLayout } from "@/components/protected-layout"; import { PageContainer, PageHeader } from "@/components/app-shell"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { supabase } from "@/integrations/supabase/client"; import { formatDate } from "@/lib/format"; import { FileText, Gavel, Download, Trash2, FilePlus2 } from "lucide-react"; import { toast } from "sonner"; export const Route = createFileRoute("/documents/")({ component: PleadingsIndex, }); function PleadingsIndex() { const [pleadings, setPleadings] = useState([]); const load = async () => { const { data } = await supabase .from("generated_documents") .select("*") .eq("kind", "pleading") .order("created_at", { ascending: false }); setPleadings(data ?? []); }; useEffect(() => { load(); }, []); const removePleading = async (row: any) => { if (!confirm(`Delete ${row.name}?`)) return; if (row.storage_path) await supabase.storage.from("generated-documents").remove([row.storage_path]); const { error } = await supabase.from("generated_documents").delete().eq("id", row.id); if (error) toast.error(error.message); else { toast.success("Deleted"); load(); } }; const downloadPleading = async (row: any) => { if (!row.storage_path) { toast.error("No file stored for this pleading"); return; } const { data, error } = await supabase.storage.from("generated-documents").createSignedUrl(row.storage_path, 60); if (error) { toast.error(error.message); return; } window.open(data.signedUrl, "_blank"); }; return ( New Pleading } />
Florida Pleading
Court caption header in Bookman Old Style 12pt.
Saved pleadings
{pleadings.length} saved ยท open any below as a new template.
Saved pleadings {pleadings.length === 0 ? (
No pleadings yet. Create one to save it as a reusable template.
) : ( {pleadings.map((d) => ( ))}
Name Created Actions
{d.name} {formatDate(d.created_at)} {d.storage_path && ( )}
)}
); }