From cf31f94c442cad52300d6bc4b79ce32bfaa8869f Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Thu, 9 Oct 2025 15:53:01 +0000 Subject: [PATCH] Fix fetchItems calls and edge function error --- src/components/moderation/ModerationQueue.tsx | 28 ++++++++++++++++--- supabase/functions/seed-test-data/index.ts | 3 +- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/components/moderation/ModerationQueue.tsx b/src/components/moderation/ModerationQueue.tsx index e5e79a2b..cc93786d 100644 --- a/src/components/moderation/ModerationQueue.tsx +++ b/src/components/moderation/ModerationQueue.tsx @@ -165,7 +165,8 @@ export const ModerationQueue = forwardRef((props, ref) => { statusFilter, tab, silent, - timestamp: new Date().toISOString() + timestamp: new Date().toISOString(), + caller: new Error().stack?.split('\n')[2]?.trim() }); try { @@ -556,13 +557,32 @@ export const ModerationQueue = forwardRef((props, ref) => { } }), [fetchItems]); + // Track if initial fetch has happened + const hasInitialFetchRef = useRef(false); + + // Debounced version of fetchItems for filter changes + const fetchDebounceRef = useRef(null); + const debouncedFetchItems = useCallback((entityFilter: EntityFilter, statusFilter: StatusFilter, silent: boolean, tab: QueueTab = 'mainQueue') => { + if (fetchDebounceRef.current) { + clearTimeout(fetchDebounceRef.current); + } + fetchDebounceRef.current = setTimeout(() => { + fetchItems(entityFilter, statusFilter, silent, tab); + }, 100); + }, [fetchItems]); + // Initial fetch on mount and filter changes useEffect(() => { - if (user) { - fetchItems(debouncedEntityFilter, debouncedStatusFilter, false); // Show loading + if (!user) return; + + if (!hasInitialFetchRef.current) { + hasInitialFetchRef.current = true; + fetchItems(debouncedEntityFilter, debouncedStatusFilter, false); + } else { + debouncedFetchItems(debouncedEntityFilter, debouncedStatusFilter, true, activeTab); } // eslint-disable-next-line react-hooks/exhaustive-deps - }, [debouncedEntityFilter, debouncedStatusFilter, user]); + }, [debouncedEntityFilter, debouncedStatusFilter, user, activeTab]); // Polling for auto-refresh (only if realtime is disabled) useEffect(() => { diff --git a/supabase/functions/seed-test-data/index.ts b/supabase/functions/seed-test-data/index.ts index 9966e56b..53cbaa50 100644 --- a/supabase/functions/seed-test-data/index.ts +++ b/supabase/functions/seed-test-data/index.ts @@ -154,8 +154,7 @@ Deno.serve(async (req) => { submission_type: type, status: 'pending', content: contentData, - submitted_at: new Date().toISOString(), - priority: options.escalated ? 10 : randomInt(1, 5) + submitted_at: new Date().toISOString() }; if (options.escalated) {