diff --git a/app/dashboard/consultant/[consultantId]/(features)/documents/DocumentsTab.tsx b/app/dashboard/consultant/[consultantId]/(features)/documents/DocumentsTab.tsx index 463055b27..bc6f5cee5 100644 --- a/app/dashboard/consultant/[consultantId]/(features)/documents/DocumentsTab.tsx +++ b/app/dashboard/consultant/[consultantId]/(features)/documents/DocumentsTab.tsx @@ -100,6 +100,11 @@ export function DocumentsTab({ const [selectedIds, setSelectedIds] = useState>(new Set()); const [isBulkUpdating, setIsBulkUpdating] = useState(false); + // Bulk review dialog state + const [bulkReviewDialogOpen, setBulkReviewDialogOpen] = useState(false); + const [bulkReviewStatus, setBulkReviewStatus] = useState(""); + const [bulkReviewNotes, setBulkReviewNotes] = useState(""); + // Debounce search input. Search is local to the current page, so we don't // need to reset server-side pagination on every keystroke. useEffect(() => { @@ -183,7 +188,7 @@ export function DocumentsTab({ setSelectedIds(next); }; - const handleBulkStatusUpdate = async (newStatus: string) => { + const handleBulkStatusUpdate = async (newStatus: string, notes?: string) => { if (selectedIds.size === 0) return; setIsBulkUpdating(true); @@ -196,7 +201,10 @@ export function DocumentsTab({ { method: "PATCH", headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ reviewStatus: newStatus }), + body: JSON.stringify({ + reviewStatus: newStatus, + reviewNotes: notes?.trim() || null, + }), }, ), ), @@ -206,7 +214,7 @@ export function DocumentsTab({ const failed = results.length - succeeded; toast({ - title: "Bulk Update Complete", + title: "Bulk Review Complete", description: failed ? `${succeeded} updated, ${failed} failed` : `${succeeded} document${succeeded !== 1 ? "s" : ""} updated to ${getStatusLabel(newStatus)}`, @@ -214,6 +222,9 @@ export function DocumentsTab({ }); setSelectedIds(new Set()); + setBulkReviewDialogOpen(false); + setBulkReviewStatus(""); + setBulkReviewNotes(""); onRefresh?.(); } catch { toast({ @@ -408,26 +419,13 @@ export function DocumentsTab({ {selectedIds.size} selected - + {isBulkUpdating ? "Updating..." : "Review Selected"} +