Fix: Simplify moderation queue tab focus reload

This commit is contained in:
gpt-engineer-app[bot]
2025-10-13 19:49:07 +00:00
parent 5588f89606
commit 538846d7e3
2 changed files with 14 additions and 70 deletions

View File

@@ -894,67 +894,27 @@ export function useModerationQueueManager(config: ModerationQueueManagerConfig):
};
}, [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 - SIMPLIFIED
useEffect(() => {
console.log("🔍 [VISIBILITY EFFECT] Hard check", {
refreshOnTabVisible: settings.refreshOnTabVisible,
typeOf: typeof settings.refreshOnTabVisible,
isRefreshOnTabVisibleEnabled,
willAttachListener: isRefreshOnTabVisibleEnabled,
timestamp: new Date().toISOString(),
});
// Early return if feature is disabled
if (!isRefreshOnTabVisibleEnabled) {
console.log(" ✅ Feature DISABLED - skipping all visibility logic");
console.log(" ✅ Tab focus will NOT trigger refreshes");
// Cleanup: ensure no lingering handlers
return () => {
console.log(" 🧹 Cleanup: Ensuring no visibility listeners exist");
};
// Don't attach listener if feature is disabled
if (!settings.refreshOnTabVisible) {
return;
}
console.error(" ❌ Setting is TRUE - listener WILL be attached");
console.error(" ❌ THIS MEANS TAB FOCUS **WILL** TRIGGER REFRESHES");
console.error(" ⚠️ If you disabled this setting, it is NOT working properly");
const handleVisibilityChange = () => {
// Double-check setting before doing anything (defensive check)
if (!isRefreshOnTabVisibleEnabled) {
console.log("⚠️ Visibility handler called but setting is disabled - ignoring");
return;
}
if (document.hidden) {
console.log("👁️ [VISIBILITY HANDLER] Tab hidden - pausing fetches");
pauseFetchingRef.current = true;
} else {
console.error("👁️ [VISIBILITY HANDLER] Tab visible - THIS IS WHERE THE REFRESH HAPPENS");
console.error(" 🔴 TAB FOCUS REFRESH TRIGGERED HERE");
console.error(" 📍 Stack trace below:");
console.trace();
pauseFetchingRef.current = false;
if (initialFetchCompleteRef.current && !isMountingRef.current && fetchItemsRef.current) {
console.error(" ➡️ Calling fetchItems(true) NOW");
fetchItemsRef.current(true);
} else {
console.log(" ⏭️ Skipping refresh (initial fetch not complete or mounting)");
}
}
};
document.addEventListener("visibilitychange", handleVisibilityChange);
return () => {
document.removeEventListener("visibilitychange", handleVisibilityChange);
console.log("🧹 Visibility listener removed");
};
}, [isRefreshOnTabVisibleEnabled]);
return () => document.removeEventListener("visibilitychange", handleVisibilityChange);
}, [settings.refreshOnTabVisible]);
// Initialize realtime subscriptions
useRealtimeSubscriptions({