diff --git a/src/components/moderation/SubmissionReviewManager.tsx b/src/components/moderation/SubmissionReviewManager.tsx index 87bb3b69..664a3dbf 100644 --- a/src/components/moderation/SubmissionReviewManager.tsx +++ b/src/components/moderation/SubmissionReviewManager.tsx @@ -118,9 +118,10 @@ export function SubmissionReviewManager({ } else { next.add(itemId); } - // Clear blocking errors when selection changes + // Clear blocking errors and warning confirmation when selection changes setHasBlockingErrors(false); setValidationResults(new Map()); + setUserConfirmedWarnings(false); return next; }); }; @@ -179,7 +180,8 @@ export function SubmissionReviewManager({ return result && result.blockingErrors.length > 0; }); - if (itemsWithBlockingErrors.length > 0 && !userConfirmedWarnings) { + // CRITICAL: Blocking errors can NEVER be bypassed, regardless of warnings + if (itemsWithBlockingErrors.length > 0) { setHasBlockingErrors(true); setShowValidationBlockerDialog(true); setLoading(false); @@ -227,7 +229,10 @@ export function SubmissionReviewManager({ : `Successfully approved ${successCount} item(s)`, variant: failCount > 0 ? 'destructive' : 'default', }); - + + // Reset warning confirmation state after approval + setUserConfirmedWarnings(false); + onComplete(); onOpenChange(false); } catch (error: any) {