From 659d1b2c9156bf93107f4221b0f11c799bf72e3c Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sun, 28 Sep 2025 23:31:33 +0000 Subject: [PATCH] Fix moderation status update --- src/components/moderation/ModerationQueue.tsx | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/components/moderation/ModerationQueue.tsx b/src/components/moderation/ModerationQueue.tsx index 0d9cde46..007f3cac 100644 --- a/src/components/moderation/ModerationQueue.tsx +++ b/src/components/moderation/ModerationQueue.tsx @@ -209,25 +209,37 @@ export function ModerationQueue() { updateData.reviewer_notes = moderatorNotes; } - const { error } = await supabase + console.log('Updating item:', item.id, 'with data:', updateData); + + const { error, data } = await supabase .from(table) .update(updateData) - .eq('id', item.id); + .eq('id', item.id) + .select(); - if (error) throw error; + if (error) { + console.error('Database update error:', error); + throw error; + } + + console.log('Update successful:', data); toast({ title: `Content ${action}`, description: `The ${item.type} has been ${action}`, }); - // Remove item from queue if it's no longer in the active filter - if (activeStatusFilter === 'pending' || activeStatusFilter === 'flagged') { - setItems(prev => prev.filter(i => i.id !== item.id)); - } else { - // Refresh the queue to show updated status + // Update the local state immediately + setItems(prev => prev.map(i => + i.id === item.id + ? { ...i, status: action } + : i + )); + + // Also refresh the queue after a short delay to ensure consistency + setTimeout(() => { fetchItems(activeEntityFilter, activeStatusFilter); - } + }, 500); // Clear notes setNotes(prev => { @@ -239,7 +251,7 @@ export function ModerationQueue() { console.error('Error moderating content:', error); toast({ title: "Error", - description: `Failed to ${action} content`, + description: `Failed to ${action} content: ${error.message}`, variant: "destructive", }); } finally {