diff --git a/src/components/moderation/ModerationQueue.tsx b/src/components/moderation/ModerationQueue.tsx index 7912181f..15df2714 100644 --- a/src/components/moderation/ModerationQueue.tsx +++ b/src/components/moderation/ModerationQueue.tsx @@ -229,7 +229,18 @@ export const ModerationQueue = forwardRef((props, ref) => { }, []); const fetchItems = useCallback(async (entityFilter: EntityFilter = 'all', statusFilter: StatusFilter = 'pending', silent = false, tab: QueueTab = 'mainQueue') => { + console.log('🔍 fetchItems called:', { + hasUser: !!userRef.current, + entityFilter, + statusFilter, + silent, + tab, + loadingState, + timestamp: new Date().toISOString() + }); + if (!userRef.current) { + console.warn('⚠️ fetchItems: No user available yet, cannot fetch'); return; } @@ -762,15 +773,28 @@ export const ModerationQueue = forwardRef((props, ref) => { // Initial fetch on mount and filter changes useEffect(() => { - if (!user) return; + console.log('🎯 Initial fetch effect:', { + hasUser: !!user, + loadingState, + hasInitialFetchRef: hasInitialFetchRef.current, + initialFetchComplete: initialFetchCompleteRef.current, + isMounting: isMountingRef.current + }); + + if (!user) { + console.log('⏳ Waiting for user to be available...'); + return; + } // Phase 1: Initial fetch (run once) if (!hasInitialFetchRef.current) { + console.log('✅ Triggering initial fetch'); hasInitialFetchRef.current = true; isMountingRef.current = true; fetchItems(debouncedEntityFilter, debouncedStatusFilter, false) .then(() => { + console.log('✅ Initial fetch complete'); initialFetchCompleteRef.current = true; // Wait for DOM to paint before allowing subsequent fetches requestAnimationFrame(() => { @@ -782,6 +806,7 @@ export const ModerationQueue = forwardRef((props, ref) => { // Phase 2: Filter changes (only after initial fetch completes) if (!isMountingRef.current && initialFetchCompleteRef.current) { + console.log('🔄 Filter changed, fetching with debounce'); debouncedFetchItems(debouncedEntityFilter, debouncedStatusFilter, true, activeTab); } }, [debouncedEntityFilter, debouncedStatusFilter, user, activeTab, fetchItems, debouncedFetchItems]);