From c4612df6a55fdaa0e2ab56e36b848e8dbcd31dc1 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Mon, 13 Oct 2025 20:12:06 +0000 Subject: [PATCH] Fix: Stabilize filters object passed to realtime subscriptions --- src/hooks/moderation/useModerationQueueManager.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/hooks/moderation/useModerationQueueManager.ts b/src/hooks/moderation/useModerationQueueManager.ts index 318c5f2c..6ee815cc 100644 --- a/src/hooks/moderation/useModerationQueueManager.ts +++ b/src/hooks/moderation/useModerationQueueManager.ts @@ -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;