mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 15:31:13 -05:00
feat: Add debouncing to sort changes
This commit is contained in:
@@ -152,8 +152,8 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig):
|
||||
pauseFetchingRef: pauseFetchingRef.current,
|
||||
documentHidden: document.hidden,
|
||||
caller: callerLine,
|
||||
sortField: sort.config.field,
|
||||
sortDirection: sort.config.direction,
|
||||
sortField: sort.debouncedConfig.field,
|
||||
sortDirection: sort.debouncedConfig.direction,
|
||||
timestamp: new Date().toISOString(),
|
||||
});
|
||||
|
||||
@@ -183,8 +183,8 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig):
|
||||
console.log("🔍 fetchItems called:", {
|
||||
entityFilter: filters.debouncedEntityFilter,
|
||||
statusFilter: filters.debouncedStatusFilter,
|
||||
sortField: sort.config.field,
|
||||
sortDirection: sort.config.direction,
|
||||
sortField: sort.debouncedConfig.field,
|
||||
sortDirection: sort.debouncedConfig.direction,
|
||||
silent,
|
||||
timestamp: new Date().toISOString(),
|
||||
});
|
||||
@@ -227,14 +227,14 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig):
|
||||
// Level 1: Always sort by escalated first (descending)
|
||||
submissionsQuery = submissionsQuery.order('escalated', { ascending: false });
|
||||
|
||||
// Level 2: Apply user-selected sort
|
||||
submissionsQuery = submissionsQuery.order(
|
||||
sort.config.field,
|
||||
{ ascending: sort.config.direction === 'asc' }
|
||||
);
|
||||
// Level 2: Apply user-selected sort (use debounced config)
|
||||
submissionsQuery = submissionsQuery.order(
|
||||
sort.debouncedConfig.field,
|
||||
{ ascending: sort.debouncedConfig.direction === 'asc' }
|
||||
);
|
||||
|
||||
// Level 3: Tertiary sort by created_at (if not already primary)
|
||||
if (sort.config.field !== 'created_at') {
|
||||
// Level 3: Tertiary sort by created_at (if not already primary)
|
||||
if (sort.debouncedConfig.field !== 'created_at') {
|
||||
submissionsQuery = submissionsQuery.order('created_at', { ascending: true });
|
||||
}
|
||||
|
||||
@@ -475,8 +475,8 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig):
|
||||
pagination.setTotalCount,
|
||||
pagination.startIndex,
|
||||
pagination.endIndex,
|
||||
sort.config.field,
|
||||
sort.config.direction,
|
||||
sort.debouncedConfig.field,
|
||||
sort.debouncedConfig.direction,
|
||||
profileCache,
|
||||
entityCache,
|
||||
toast
|
||||
@@ -812,9 +812,11 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig):
|
||||
useEffect(() => {
|
||||
if (!user || !initialFetchCompleteRef.current || isMountingRef.current) return;
|
||||
|
||||
console.log('🔄 [SORT CHANGE] Detected sort config change:', {
|
||||
field: sort.config.field,
|
||||
direction: sort.config.direction,
|
||||
console.log('🔄 [SORT/FILTER CHANGE] Detected change:', {
|
||||
entityFilter: filters.debouncedEntityFilter,
|
||||
statusFilter: filters.debouncedStatusFilter,
|
||||
sortField: sort.debouncedConfig.field,
|
||||
sortDirection: sort.debouncedConfig.direction,
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
|
||||
@@ -823,8 +825,8 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig):
|
||||
}, [
|
||||
filters.debouncedEntityFilter,
|
||||
filters.debouncedStatusFilter,
|
||||
sort.config.field,
|
||||
sort.config.direction,
|
||||
sort.debouncedConfig.field,
|
||||
sort.debouncedConfig.direction,
|
||||
fetchItems,
|
||||
pagination.reset,
|
||||
user
|
||||
|
||||
Reference in New Issue
Block a user