import { useEffect, useState } from "react"; import { IconDoc } from "../lib/icons"; import Badge from "./ui/Badge"; import Button from "./ui/Button"; export default function DocumentCard({ doc, onDelete }) { const processed = doc.status === "processed"; // Inline two-step delete confirm (no window.confirm): first click arms the // question, Confirm actually deletes. Resets on blur or after 5 seconds. const [confirming, setConfirming] = useState(false); useEffect(() => { if (!confirming) return; const t = setTimeout(() => setConfirming(false), 5000); return () => clearTimeout(t); }, [confirming]); return (
{doc.filename}
{doc.file_type.toUpperCase()}
{doc.error &&
{doc.error}
}
{ if (!e.currentTarget.contains(e.relatedTarget)) setConfirming(false); }} > {confirming ? ( <> Delete this document and its history?
) : ( <>
{doc.status} {processed && ( {doc.num_chunks} chunks )}
)}
); }