[251116] feat: PlayerPanel FullScreen

🕐 커밋 시간: 2025. 11. 16. 21:32:12

📊 변경 통계:
  • 총 파일: 5개
  • 추가: +81줄
  • 삭제: -20줄

📝 수정된 파일:
  ~ com.twin.app.shoptime/src/actions/playActions.js
  ~ com.twin.app.shoptime/src/hooks/useVideoPlay/useVideoPlay.js
  ~ com.twin.app.shoptime/src/middleware/panelHistoryMiddleware.js
  ~ com.twin.app.shoptime/src/views/HomePanel/HomePanel.jsx
  ~ com.twin.app.shoptime/src/views/MainView/MainView.jsx

🔧 함수 변경 내용:
  📄 com.twin.app.shoptime/src/actions/playActions.js (javascript):
    🔄 Modified: resumeFullscreenVideo()

🔧 주요 변경 내용:
  • 핵심 비즈니스 로직 개선
This commit is contained in:
2025-11-16 21:32:12 +09:00
parent da1a050a10
commit a18c61380c
5 changed files with 197 additions and 57 deletions

View File

@@ -161,11 +161,18 @@ export const startVideoPlayerNew =
panelWorkingAction = updatePanel;
}
// 중복 실행 방지: 현재 PlayerPanel이 같은 배너를 재생 중이면 skip
const currentPlayerState = topPanel?.panelInfo?.playerState || {};
if (currentPlayerState?.currentBannerId === bannerId) {
console.log('[playActions] startVideoPlayerNew: 동일 배너 재생 중이라 중복 실행 SKIP', {
// 중복 실행 방지: 같은 배너 + 같은 modal 상태/컨테이너면 skip
const currentPanelInfo = topPanel?.panelInfo || {};
const currentPlayerState = currentPanelInfo.playerState || {};
const isSameBanner = currentPlayerState.currentBannerId === bannerId;
const isSameModalType = currentPanelInfo.modal === modal;
const isSameContainer = currentPanelInfo.modalContainerId === modalContainerId;
if (isSameBanner && isSameModalType && isSameContainer) {
console.log('[playActions] startVideoPlayerNew: 동일한 요청이므로 스킵', {
bannerId,
modal,
modalContainerId,
});
return;
}
@@ -397,7 +404,13 @@ export const shrinkVideoTo1px = () => (dispatch, getState) => {
})
);
} else {
console.log('[HomePanel] shrinkVideoTo1px: No modal PlayerPanel found');
console.log('[HomePanel] shrinkVideoTo1px: No modal PlayerPanel found', {
panels: panels.map((p) => ({
name: p.name,
modal: p.panelInfo?.modal,
shouldShrinkTo1px: p.panelInfo?.shouldShrinkTo1px,
})),
});
}
};
@@ -445,7 +458,13 @@ export const expandVideoFrom1px = () => (dispatch, getState) => {
})
);
} else {
console.log('[HomePanel] expandVideoFrom1px: No shrunk modal PlayerPanel found');
console.log('[HomePanel] expandVideoFrom1px: No shrunk modal PlayerPanel found', {
panels: panels.map((p) => ({
name: p.name,
modal: p.panelInfo?.modal,
shouldShrinkTo1px: p.panelInfo?.shouldShrinkTo1px,
})),
});
}
};