diff --git a/src/hooks/moderation/useModerationQueueManager.ts b/src/hooks/moderation/useModerationQueueManager.ts index 868838dc..062882d3 100644 --- a/src/hooks/moderation/useModerationQueueManager.ts +++ b/src/hooks/moderation/useModerationQueueManager.ts @@ -103,6 +103,16 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig): initialConfig: { field: "created_at", direction: "asc" }, persist: true, storageKey: "moderationQueue_sortConfig", + onChange: useCallback((config: SortConfig) => { + if (!user || !initialFetchCompleteRef.current || isMountingRef.current) { + console.log('[Sort onChange] Skipped:', { user: !!user, initialFetch: initialFetchCompleteRef.current, mounting: isMountingRef.current }); + return; + } + + console.log('[Sort onChange] Triggered - Refetching with:', config); + pagination.reset(); + fetchItemsRef.current?.(true); + }, [user]), }); const queue = useModerationQueue(); @@ -804,25 +814,6 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig): fetchItems(true); }, [filters.debouncedEntityFilter, filters.debouncedStatusFilter]); - // Sort changes trigger refetch - useEffect(() => { - console.log('[Sort Effect] Triggered:', { - field: sort.config.field, - direction: sort.config.direction, - user: !!user, - isMounting: isMountingRef.current - }); - - if (!user || isMountingRef.current) { - console.log('[Sort Effect] Skipped due to guards'); - return; - } - - console.log('[Sort Effect] Executing refetch'); - pagination.reset(); - fetchItemsRef.current?.(true); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [sort.config]); // Pagination changes trigger refetch useEffect(() => {