diff --git a/src/components/moderation/ModerationQueue.tsx b/src/components/moderation/ModerationQueue.tsx index 67732044..60ec8673 100644 --- a/src/components/moderation/ModerationQueue.tsx +++ b/src/components/moderation/ModerationQueue.tsx @@ -30,20 +30,29 @@ export const ModerationQueue = forwardRef((props, ref) => { const adminSettings = useAdminSettings(); // Memoize settings to prevent unnecessary effect re-runs + // Get actual values from admin settings + const refreshMode = adminSettings.getAdminPanelRefreshMode(); + const pollInterval = adminSettings.getAdminPanelPollInterval(); + const refreshStrategy = adminSettings.getAutoRefreshStrategy(); + const preserveInteraction = adminSettings.getPreserveInteractionState(); + const useRealtimeQueue = adminSettings.getUseRealtimeQueue(); + const refreshOnTabVisible = adminSettings.getRefreshOnTabVisible(); + + // Memoize settings object based on actual values, not function references const settings = useMemo(() => ({ - refreshMode: adminSettings.getAdminPanelRefreshMode(), - pollInterval: adminSettings.getAdminPanelPollInterval(), - refreshStrategy: adminSettings.getAutoRefreshStrategy(), - preserveInteraction: adminSettings.getPreserveInteractionState(), - useRealtimeQueue: adminSettings.getUseRealtimeQueue(), - refreshOnTabVisible: adminSettings.getRefreshOnTabVisible(), + refreshMode, + pollInterval, + refreshStrategy, + preserveInteraction, + useRealtimeQueue, + refreshOnTabVisible, }), [ - adminSettings.getAdminPanelRefreshMode, - adminSettings.getAdminPanelPollInterval, - adminSettings.getAutoRefreshStrategy, - adminSettings.getPreserveInteractionState, - adminSettings.getUseRealtimeQueue, - adminSettings.getRefreshOnTabVisible, + refreshMode, + pollInterval, + refreshStrategy, + preserveInteraction, + useRealtimeQueue, + refreshOnTabVisible, ]); // Initialize queue manager (replaces all state management, fetchItems, effects)