"use client" import { useState, useEffect } from "react" import { useParams, useRouter } from "next/navigation" import Link from "next/link" import { FileText, Download, Trash2, Loader2 } from "lucide-react" import { FileUpload } from "@/components/shared/file-upload" import { formatDate } from "@/lib/utils" function formatBytes(bytes: number) { if (bytes < 1024) return `${bytes} B` if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB` return `${(bytes / (1024 * 1024)).toFixed(1)} MB` } export default function DocumentsPage() { const params = useParams() const propertyId = params.propertyId as string const router = useRouter() const [docs, setDocs] = useState([]) const [loading, setLoading] = useState(true) const [deleting, setDeleting] = useState(null) const [propertyName, setPropertyName] = useState("") useEffect(() => { fetch(`/api/documents?property_id=${propertyId}`) .then((r) => r.json()) .then((data) => { setDocs(data.documents ?? []) setPropertyName(data.propertyName ?? "") setLoading(false) }) }, [propertyId]) async function deleteDoc(id: string) { setDeleting(id) await fetch(`/api/documents/${id}`, { method: "DELETE" }) setDocs((prev) => prev.filter((d) => d.id !== id)) setDeleting(null) } return (
Properties / {propertyName || propertyId} / Documents

Documents

{docs.length} file{docs.length !== 1 ? "s" : ""}

setDocs((prev) => [doc, ...prev])} /> {loading ? (
) : docs.length === 0 ? (

No documents yet

Upload leases, insurance, or any property files

) : (
{docs.map((doc) => (

{doc.name}

{formatBytes(doc.file_size ?? 0)} ยท {formatDate(doc.created_at)}

))}
)}
) }