Fix: Stabilize filters object passed to realtime subscriptions

This commit is contained in:
gpt-engineer-app[bot]
2025-10-13 20:12:06 +00:00
parent 9608824948
commit c4612df6a5

View File

@@ -1,4 +1,4 @@
import { useState, useCallback, useRef, useEffect } from "react";
import { useState, useCallback, useRef, useEffect, useMemo } from "react";
import { supabase } from "@/integrations/supabase/client";
import { useToast } from "@/hooks/use-toast";
import type { User } from "@supabase/supabase-js";
@@ -90,6 +90,12 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig):
storageKey: "moderationQueue_filters",
});
// Memoize filters object for realtime subscriptions to prevent reconnections
const realtimeFilters = useMemo(() => ({
entityFilter: filters.debouncedEntityFilter,
statusFilter: filters.debouncedStatusFilter,
}), [filters.debouncedEntityFilter, filters.debouncedStatusFilter]);
const pagination = usePagination({
initialPage: 1,
initialPageSize: 25,
@@ -896,10 +902,7 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig):
// Initialize realtime subscriptions
useRealtimeSubscriptions({
enabled: settings.useRealtimeQueue && !!user,
filters: {
entityFilter: filters.debouncedEntityFilter,
statusFilter: filters.debouncedStatusFilter,
},
filters: realtimeFilters,
onNewItem: (item: ModerationItem) => {
if (recentlyRemovedRef.current.has(item.id)) return;