mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 08:31:12 -05:00
Fix infinite query loop
This commit is contained in:
@@ -160,42 +160,20 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig):
|
|||||||
const initialFetchCompleteRef = useRef(false);
|
const initialFetchCompleteRef = useRef(false);
|
||||||
const isMountingRef = useRef(true);
|
const isMountingRef = useRef(true);
|
||||||
|
|
||||||
// Store settings, filters, and pagination in refs to stabilize fetchItems
|
|
||||||
const settingsRef = useRef(settings);
|
|
||||||
const filtersRef = useRef(filters);
|
|
||||||
const sortRef = useRef(filters.debouncedSortConfig);
|
|
||||||
const paginationRef = useRef(pagination);
|
|
||||||
|
|
||||||
// Sync refs with state
|
|
||||||
useEffect(() => {
|
|
||||||
settingsRef.current = settings;
|
|
||||||
}, [settings]);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
filtersRef.current = filters;
|
|
||||||
}, [filters]);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
sortRef.current = filters.debouncedSortConfig;
|
|
||||||
}, [filters.debouncedSortConfig]);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
paginationRef.current = pagination;
|
|
||||||
}, [pagination]);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Replace manual fetching with TanStack Query
|
* Replace manual fetching with TanStack Query
|
||||||
|
* Use direct state values for stable query keys
|
||||||
*/
|
*/
|
||||||
const queueQuery = useQueueQuery({
|
const queueQuery = useQueueQuery({
|
||||||
userId: user?.id,
|
userId: user?.id,
|
||||||
isAdmin,
|
isAdmin,
|
||||||
isSuperuser,
|
isSuperuser,
|
||||||
entityFilter: filtersRef.current.debouncedEntityFilter,
|
entityFilter: filters.debouncedEntityFilter,
|
||||||
statusFilter: filtersRef.current.debouncedStatusFilter,
|
statusFilter: filters.debouncedStatusFilter,
|
||||||
tab: filtersRef.current.activeTab,
|
tab: filters.activeTab,
|
||||||
currentPage: paginationRef.current.currentPage,
|
currentPage: pagination.currentPage,
|
||||||
pageSize: paginationRef.current.pageSize,
|
pageSize: pagination.pageSize,
|
||||||
sortConfig: sortRef.current,
|
sortConfig: filters.debouncedSortConfig,
|
||||||
enabled: !!user,
|
enabled: !!user,
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -232,8 +210,8 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig):
|
|||||||
|
|
||||||
// Update total count for pagination
|
// Update total count for pagination
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
paginationRef.current.setTotalCount(queueQuery.totalCount);
|
pagination.setTotalCount(queueQuery.totalCount);
|
||||||
}, [queueQuery.totalCount]);
|
}, [queueQuery.totalCount, pagination]);
|
||||||
|
|
||||||
// Mark initial fetch as complete
|
// Mark initial fetch as complete
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "Permissions-Policy",
|
"key": "Permissions-Policy",
|
||||||
"value": "browsing-topics=()"
|
"value": "interest-cohort=()"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user