mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 13:31:12 -05:00
feat: Implement Phase 3 optimizations
This commit is contained in:
@@ -29,14 +29,21 @@ export const ModerationQueue = forwardRef<ModerationQueueRef>((props, ref) => {
|
||||
const { isAdmin, isSuperuser } = useUserRole();
|
||||
const adminSettings = useAdminSettings();
|
||||
|
||||
// Memoize settings - call functions inside useMemo to avoid recreating on every render
|
||||
// Extract settings values to stable primitives for memoization
|
||||
const refreshMode = adminSettings.getAdminPanelRefreshMode();
|
||||
const pollInterval = adminSettings.getAdminPanelPollInterval();
|
||||
const refreshStrategy = adminSettings.getAutoRefreshStrategy();
|
||||
const preserveInteraction = adminSettings.getPreserveInteractionState();
|
||||
const useRealtimeQueue = adminSettings.getUseRealtimeQueue();
|
||||
|
||||
// Memoize settings object using stable primitive dependencies
|
||||
const settings = useMemo(() => ({
|
||||
refreshMode: adminSettings.getAdminPanelRefreshMode(),
|
||||
pollInterval: adminSettings.getAdminPanelPollInterval(),
|
||||
refreshStrategy: adminSettings.getAutoRefreshStrategy(),
|
||||
preserveInteraction: adminSettings.getPreserveInteractionState(),
|
||||
useRealtimeQueue: adminSettings.getUseRealtimeQueue(),
|
||||
}), [adminSettings]);
|
||||
refreshMode,
|
||||
pollInterval,
|
||||
refreshStrategy,
|
||||
preserveInteraction,
|
||||
useRealtimeQueue,
|
||||
}), [refreshMode, pollInterval, refreshStrategy, preserveInteraction, useRealtimeQueue]);
|
||||
|
||||
// Initialize queue manager (replaces all state management, fetchItems, effects)
|
||||
const queueManager = useModerationQueueManager({
|
||||
|
||||
Reference in New Issue
Block a user