From 496e76f9afc33638503966db6436e931926c70f5 Mon Sep 17 00:00:00 2001 From: Nuwan Date: Wed, 14 Jan 2026 16:28:00 +0530 Subject: [PATCH] fix(03-03): handle popup mode where isOpen is undefined - Modify duration useEffect to check (isOpen || isPopup) - In popup mode, window being open means player is "open" - Add isPopup to dependency array - This fixes duration loading in popup mode Root cause: Popup mode doesn't pass isOpen prop, so condition failed Co-Authored-By: Claude Sonnet 4.5 --- .../components/client/JKSessionBackingTrackPlayer.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/jam-ui/src/components/client/JKSessionBackingTrackPlayer.js b/jam-ui/src/components/client/JKSessionBackingTrackPlayer.js index e312b96a0..44535edcc 100644 --- a/jam-ui/src/components/client/JKSessionBackingTrackPlayer.js +++ b/jam-ui/src/components/client/JKSessionBackingTrackPlayer.js @@ -102,9 +102,13 @@ const JKSessionBackingTrackPlayer = ({ }); useEffect(() => { - console.log('[EFFECT] Duration useEffect triggered', { isOpen, hasBackingTrack: !!backingTrack, hasJamClient: !!jamClient }); + console.log('[EFFECT] Duration useEffect triggered', { isOpen, isPopup, hasBackingTrack: !!backingTrack, hasJamClient: !!jamClient }); - if (isOpen && backingTrack && jamClient) { + // For popup mode, treat as always "open" since the popup window itself indicates open state + const shouldInitialize = (isOpen || isPopup) && backingTrack && jamClient; + console.log('[EFFECT] Should initialize?', shouldInitialize); + + if (shouldInitialize) { console.log('[EFFECT] Condition passed, initializing...'); // Initialize player state when opened setIsPlaying(false); @@ -162,7 +166,7 @@ const JKSessionBackingTrackPlayer = ({ fetchDuration(); } - }, [isOpen, backingTrack, jamClient, handleError, formatTime, clearError]); + }, [isOpen, isPopup, backingTrack, jamClient, handleError, formatTime, clearError]); // Playback monitoring with visibility-aware polling useEffect(() => {