mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-21 04:31:16 -05:00
Fix: Stabilize filters object passed to realtime subscriptions
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user