-
+
+ {columnVisibility.status && }
+
+
);
diff --git a/surfsense_web/app/dashboard/[search_space_id]/documents/(manage)/components/RowActions.tsx b/surfsense_web/app/dashboard/[search_space_id]/documents/(manage)/components/RowActions.tsx
index 88077581c..96049baf5 100644
--- a/surfsense_web/app/dashboard/[search_space_id]/documents/(manage)/components/RowActions.tsx
+++ b/surfsense_web/app/dashboard/[search_space_id]/documents/(manage)/components/RowActions.tsx
@@ -45,10 +45,17 @@ export function RowActions({
document.document_type as (typeof EDITABLE_DOCUMENT_TYPES)[number]
);
- const isDeletable = !NON_DELETABLE_DOCUMENT_TYPES.includes(
+ // Documents in "pending" or "processing" state should show disabled delete
+ const isBeingProcessed = document.status?.state === "pending" || document.status?.state === "processing";
+
+ // SURFSENSE_DOCS are system-managed and should not show delete at all
+ const shouldShowDelete = !NON_DELETABLE_DOCUMENT_TYPES.includes(
document.document_type as (typeof NON_DELETABLE_DOCUMENT_TYPES)[number]
);
+ // Delete is disabled while processing
+ const isDeleteDisabled = isBeingProcessed;
+
const handleDelete = async () => {
setIsDeleting(true);
try {
@@ -87,10 +94,11 @@ export function RowActions({
Edit
- {isDeletable && (
+ {shouldShowDelete && (
setIsDeleteOpen(true)}
- className="text-destructive focus:text-destructive"
+ onClick={() => !isDeleteDisabled && setIsDeleteOpen(true)}
+ disabled={isDeleteDisabled}
+ className={isDeleteDisabled ? "text-muted-foreground cursor-not-allowed opacity-50" : "text-destructive focus:text-destructive"}
>
Delete
@@ -100,13 +108,13 @@ export function RowActions({
) : (
// Non-editable documents: show only delete button directly
- isDeletable && (
+ shouldShowDelete && (
- {isDeletable && (
+ {shouldShowDelete && (
setIsDeleteOpen(true)}
- className="text-destructive focus:text-destructive"
+ onClick={() => !isDeleteDisabled && setIsDeleteOpen(true)}
+ disabled={isDeleteDisabled}
+ className={isDeleteDisabled ? "text-muted-foreground cursor-not-allowed opacity-50" : "text-destructive focus:text-destructive"}
>
Delete
@@ -144,13 +153,13 @@ export function RowActions({
) : (
// Non-editable documents: show only delete button directly
- isDeletable && (
+ shouldShowDelete && (