mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-21 22:51:12 -05:00
Fix: Prevent moderation queue reload on tab focus
This commit is contained in:
@@ -894,21 +894,21 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig):
|
|||||||
};
|
};
|
||||||
}, [user, settings.refreshMode, settings.pollInterval, loadingState, settings.useRealtimeQueue]);
|
}, [user, settings.refreshMode, settings.pollInterval, loadingState, settings.useRealtimeQueue]);
|
||||||
|
|
||||||
|
// Extract the boolean value to prevent effect re-runs when settings object changes
|
||||||
|
const isRefreshOnTabVisibleEnabled = settings.refreshOnTabVisible === true;
|
||||||
|
|
||||||
// Visibility change handler
|
// Visibility change handler
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// HARD CHECK: Explicit boolean comparison to prevent any truthy coercion
|
|
||||||
const isEnabled = settings.refreshOnTabVisible === true;
|
|
||||||
|
|
||||||
console.log("🔍 [VISIBILITY EFFECT] Hard check", {
|
console.log("🔍 [VISIBILITY EFFECT] Hard check", {
|
||||||
refreshOnTabVisible: settings.refreshOnTabVisible,
|
refreshOnTabVisible: settings.refreshOnTabVisible,
|
||||||
typeOf: typeof settings.refreshOnTabVisible,
|
typeOf: typeof settings.refreshOnTabVisible,
|
||||||
isEnabled,
|
isRefreshOnTabVisibleEnabled,
|
||||||
willAttachListener: isEnabled,
|
willAttachListener: isRefreshOnTabVisibleEnabled,
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
});
|
});
|
||||||
|
|
||||||
// Early return if feature is disabled
|
// Early return if feature is disabled
|
||||||
if (!isEnabled) {
|
if (!isRefreshOnTabVisibleEnabled) {
|
||||||
console.log(" ✅ Feature DISABLED - skipping all visibility logic");
|
console.log(" ✅ Feature DISABLED - skipping all visibility logic");
|
||||||
console.log(" ✅ Tab focus will NOT trigger refreshes");
|
console.log(" ✅ Tab focus will NOT trigger refreshes");
|
||||||
|
|
||||||
@@ -924,7 +924,7 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig):
|
|||||||
|
|
||||||
const handleVisibilityChange = () => {
|
const handleVisibilityChange = () => {
|
||||||
// Double-check setting before doing anything (defensive check)
|
// Double-check setting before doing anything (defensive check)
|
||||||
if (!settings.refreshOnTabVisible) {
|
if (!isRefreshOnTabVisibleEnabled) {
|
||||||
console.log("⚠️ Visibility handler called but setting is disabled - ignoring");
|
console.log("⚠️ Visibility handler called but setting is disabled - ignoring");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -954,7 +954,7 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig):
|
|||||||
document.removeEventListener("visibilitychange", handleVisibilityChange);
|
document.removeEventListener("visibilitychange", handleVisibilityChange);
|
||||||
console.log("🧹 Visibility listener removed");
|
console.log("🧹 Visibility listener removed");
|
||||||
};
|
};
|
||||||
}, [settings.refreshOnTabVisible]);
|
}, [isRefreshOnTabVisibleEnabled]);
|
||||||
|
|
||||||
// Initialize realtime subscriptions
|
// Initialize realtime subscriptions
|
||||||
useRealtimeSubscriptions({
|
useRealtimeSubscriptions({
|
||||||
|
|||||||
Reference in New Issue
Block a user