mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-21 17:11:13 -05:00
Fix: Simplify moderation queue tab focus reload
This commit is contained in:
@@ -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({
|
||||
|
||||
Reference in New Issue
Block a user