From 847711b61e784e885ee52af3cd76fe82215999dc Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Wed, 15 Oct 2025 17:00:41 +0000 Subject: [PATCH] Fix "Already Unlocked" Toast --- .../moderation/useModerationQueueManager.ts | 2 +- src/hooks/useModerationQueue.ts | 33 +++++++++++-------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/hooks/moderation/useModerationQueueManager.ts b/src/hooks/moderation/useModerationQueueManager.ts index 583418c1..4a941f83 100644 --- a/src/hooks/moderation/useModerationQueueManager.ts +++ b/src/hooks/moderation/useModerationQueueManager.ts @@ -277,7 +277,7 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig): // Release lock if claimed if (queue.currentLock?.submissionId === item.id) { - await queue.releaseLock(item.id); + await queue.releaseLock(item.id, true); // Silent release } try { diff --git a/src/hooks/useModerationQueue.ts b/src/hooks/useModerationQueue.ts index f48a84af..26d90d74 100644 --- a/src/hooks/useModerationQueue.ts +++ b/src/hooks/useModerationQueue.ts @@ -176,7 +176,10 @@ export const useModerationQueue = (config?: UseModerationQueueConfig) => { }, [user, toast, startLockTimer]); // Release lock (manual or on completion) - const releaseLock = useCallback(async (submissionId: string): Promise => { + const releaseLock = useCallback(async ( + submissionId: string, + silent: boolean = false + ): Promise => { if (!user?.id) return false; setIsLoading(true); @@ -201,17 +204,19 @@ export const useModerationQueue = (config?: UseModerationQueueConfig) => { fetchStats(); - // Show appropriate toast based on result - if (data === true) { - toast({ - title: 'Lock Released', - description: 'You can now claim another submission', - }); - } else { - toast({ - title: 'Lock Already Released', - description: 'This submission was already unlocked', - }); + // Show appropriate toast based on result (unless silent) + if (!silent) { + if (data === true) { + toast({ + title: 'Lock Released', + description: 'You can now claim another submission', + }); + } else { + toast({ + title: 'Lock Already Released', + description: 'This submission was already unlocked', + }); + } } // Trigger refresh callback @@ -222,6 +227,8 @@ export const useModerationQueue = (config?: UseModerationQueueConfig) => { return data; } catch (error: any) { console.error('Error releasing lock:', error); + + // Always show error toasts even in silent mode toast({ title: 'Failed to Release Lock', description: error.message || 'An error occurred', @@ -424,7 +431,7 @@ export const useModerationQueue = (config?: UseModerationQueueConfig) => { // Auto-release lock after moderation action const releaseAfterAction = useCallback(async (submissionId: string, action: 'approved' | 'rejected'): Promise => { if (currentLock?.submissionId === submissionId) { - await releaseLock(submissionId); + await releaseLock(submissionId, true); // Silent release console.log(`🔓 Auto-released lock after ${action} action`); } }, [currentLock, releaseLock]);