Refactor: Implement Phase 2 improvements

This commit is contained in:
gpt-engineer-app[bot]
2025-10-15 12:06:51 +00:00
parent 0434aa95ee
commit cdd6b0bbd5
6 changed files with 107 additions and 89 deletions

View File

@@ -85,6 +85,9 @@ export interface ModerationFilters {
/** Reset sort to default */
resetSort: () => void;
/** Reset pagination to page 1 (callback) */
onFilterChange?: () => void;
}
/**
@@ -106,7 +109,9 @@ export interface ModerationFilters {
* </Select>
* ```
*/
export function useModerationFilters(config: ModerationFiltersConfig = {}): ModerationFilters {
export function useModerationFilters(
config: ModerationFiltersConfig & { onFilterChange?: () => void } = {}
): ModerationFilters {
const {
initialEntityFilter = 'all',
initialStatusFilter = 'pending',
@@ -115,6 +120,7 @@ export function useModerationFilters(config: ModerationFiltersConfig = {}): Mode
persist = true,
storageKey = 'moderationQueue_filters',
initialSortConfig = { field: 'created_at', direction: 'asc' },
onFilterChange,
} = config;
// Load persisted filters on mount
@@ -204,23 +210,26 @@ export function useModerationFilters(config: ModerationFiltersConfig = {}): Mode
}
}, [sortConfig, persist, storageKey]);
// Set entity filter with logging
// Set entity filter with logging and pagination reset
const setEntityFilter = useCallback((filter: EntityFilter) => {
logger.log('🔍 Entity filter changed:', filter);
setEntityFilterState(filter);
}, []);
onFilterChange?.();
}, [onFilterChange]);
// Set status filter with logging
// Set status filter with logging and pagination reset
const setStatusFilter = useCallback((filter: StatusFilter) => {
logger.log('🔍 Status filter changed:', filter);
setStatusFilterState(filter);
}, []);
onFilterChange?.();
}, [onFilterChange]);
// Set active tab with logging
// Set active tab with logging and pagination reset
const setActiveTab = useCallback((tab: QueueTab) => {
logger.log('🔍 Tab changed:', tab);
setActiveTabState(tab);
}, []);
onFilterChange?.();
}, [onFilterChange]);
// Sort callbacks
const setSortConfig = useCallback((config: SortConfig) => {
@@ -283,5 +292,6 @@ export function useModerationFilters(config: ModerationFiltersConfig = {}): Mode
sortBy,
toggleSortDirection,
resetSort,
onFilterChange,
};
}