diff --git a/src/components/moderation/QueueItem.tsx b/src/components/moderation/QueueItem.tsx index ab9b9e64..beec2b2c 100644 --- a/src/components/moderation/QueueItem.tsx +++ b/src/components/moderation/QueueItem.tsx @@ -413,7 +413,7 @@ export const QueueItem = memo(({ /> -
+
{/* Show Review Items button for content submissions */} {item.type === 'content_submission' && ( <> @@ -421,7 +421,7 @@ export const QueueItem = memo(({ onClick={() => onOpenReviewManager(item.id)} disabled={actionLoading === item.id || isLockedByOther || currentLockSubmissionId !== item.id} variant="outline" - className={`flex-1 ${isMobile ? 'h-11' : ''}`} + className={isMobile ? 'h-11' : ''} size={isMobile ? "default" : "default"} > @@ -453,7 +453,7 @@ export const QueueItem = memo(({
{(changes.action === 'edit' || changes.action === 'create') && changes.totalChanges > 0 && ( -
+
{changes.fieldChanges.slice(0, 5).map((change, idx) => ( ))} diff --git a/src/hooks/useModerationQueue.ts b/src/hooks/useModerationQueue.ts index 1129173c..c3461799 100644 --- a/src/hooks/useModerationQueue.ts +++ b/src/hooks/useModerationQueue.ts @@ -231,6 +231,7 @@ export const useModerationQueue = (config?: UseModerationQueueConfig) => { const releaseLock = useCallback(async (submissionId: string): Promise => { if (!user?.id) return false; + setIsLoading(true); try { const { data, error } = await supabase.rpc('release_submission_lock', { submission_id: submissionId, @@ -250,6 +251,11 @@ export const useModerationQueue = (config?: UseModerationQueueConfig) => { fetchStats(); + toast({ + title: 'Lock Released', + description: 'You can now claim another submission', + }); + // Trigger refresh callback if (onLockStateChange) { onLockStateChange(); @@ -261,9 +267,16 @@ export const useModerationQueue = (config?: UseModerationQueueConfig) => { return false; } catch (error: any) { console.error('Error releasing lock:', error); + toast({ + title: 'Error', + description: error.message || 'Failed to release lock', + variant: 'destructive', + }); return false; + } finally { + setIsLoading(false); } - }, [user, fetchStats]); + }, [user, fetchStats, toast, onLockStateChange]); // Get time remaining on current lock const getTimeRemaining = useCallback((): number | null => {