feat: Add debouncing to sort changes

This commit is contained in:
gpt-engineer-app[bot]
2025-10-13 13:30:50 +00:00
parent 73c5815c63
commit caa8f0e529
2 changed files with 30 additions and 19 deletions

View File

@@ -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