diff --git a/com.twin.app.shoptime/src/views/DetailPanel/DetailPanel.jsx b/com.twin.app.shoptime/src/views/DetailPanel/DetailPanel.jsx index 0cd162e6..ef42b5f5 100644 --- a/com.twin.app.shoptime/src/views/DetailPanel/DetailPanel.jsx +++ b/com.twin.app.shoptime/src/views/DetailPanel/DetailPanel.jsx @@ -782,6 +782,7 @@ export default function DetailPanel({ panelInfo, isOnTop, spotlightId }) { return (
+ { if (isOnTop && !panelInfo.modal && !videoVerticalVisible) { - // launchedFromPlayer가 있는지 확인하여 HomePanel 복귀와 PlayerPanel 내부 DetailPanel 복귀 구분 - const hasLaunchedFromPlayer = panelInfo?.lastFocusedTargetId !== undefined; + // 정확한 복귀 종류 구분: + // 1. HomePanel 복귀: prevModal === true && prevIsTopPanelDetailFromPlayer === false + // 2. DetailPanel 복귀: prevIsTopPanelDetailFromPlayer === true + const isHomePanelReturn = prevModal === true && prevIsTopPanelDetailFromPlayer === false; + const isDetailPanelReturn = prevIsTopPanelDetailFromPlayer === true; - if (hasLaunchedFromPlayer) { + if (isDetailPanelReturn) { console.log('[PlayerPanel] ✅ PlayerPanel 내부 DetailPanel에서 복귀함! - 오버레이 표시'); - } else { + } else if (isHomePanelReturn) { console.log('[PlayerPanel] 📺 HomePanel에서 복귀함 - 오버레이 표시'); // HomePanel에서 복귀 시 항상 tabIndex=1로 시작 console.log('[PlayerPanel] 🔄 HomePanel 복귀 - tabIndex를 1로 강제 설정'); @@ -2073,6 +2077,8 @@ const PlayerPanel = ({ isTabActivated, panelInfo, isOnTop, spotlightId, ...props setTabIndexV2(1); console.log('[PlayerPanel] 📝 tabIndexV2를 1로 설정됨'); } + } else { + console.log('[PlayerPanel] 🔄 그 외 복귀 - 오버레이 표시'); } setSideContentsVisible(true); @@ -2081,7 +2087,7 @@ const PlayerPanel = ({ isTabActivated, panelInfo, isOnTop, spotlightId, ...props // VideoPlayer가 belowContentsVisible prop을 감지해서 자동으로 controls 표시함 // PlayerPanel 내부 DetailPanel에서 복귀 시에만 포커스 복원 시도 - if (hasLaunchedFromPlayer) { + if (isDetailPanelReturn) { const lastFocusedTargetId = panelInfo?.lastFocusedTargetId; console.log('[PlayerPanel] 🎯 PlayerPanel DetailPanel 복귀 - lastFocusedTargetId:', lastFocusedTargetId); @@ -2094,7 +2100,7 @@ const PlayerPanel = ({ isTabActivated, panelInfo, isOnTop, spotlightId, ...props } } } - }, [isOnTop, panelInfo.modal, videoVerticalVisible, panelInfo?.lastFocusedTargetId, tabContainerVersion, setTabIndexV2]); + }, [isOnTop, panelInfo.modal, videoVerticalVisible, panelInfo?.lastFocusedTargetId, tabContainerVersion, setTabIndexV2, prevModal, prevIsTopPanelDetailFromPlayer]); useEffect(() => { // tabContainerVersion === 1일 때만 실행