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 { supabase } from "@/integrations/supabase/client";
import { useToast } from "@/hooks/use-toast"; import { useToast } from "@/hooks/use-toast";
import type { User } from "@supabase/supabase-js"; import type { User } from "@supabase/supabase-js";
@@ -90,6 +90,12 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig):
storageKey: "moderationQueue_filters", 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({ const pagination = usePagination({
initialPage: 1, initialPage: 1,
initialPageSize: 25, initialPageSize: 25,
@@ -896,10 +902,7 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig):
// Initialize realtime subscriptions // Initialize realtime subscriptions
useRealtimeSubscriptions({ useRealtimeSubscriptions({
enabled: settings.useRealtimeQueue && !!user, enabled: settings.useRealtimeQueue && !!user,
filters: { filters: realtimeFilters,
entityFilter: filters.debouncedEntityFilter,
statusFilter: filters.debouncedStatusFilter,
},
onNewItem: (item: ModerationItem) => { onNewItem: (item: ModerationItem) => {
if (recentlyRemovedRef.current.has(item.id)) return; if (recentlyRemovedRef.current.has(item.id)) return;