[251203] fix: VOD-FeaturedShows-1

🕐 커밋 시간: 2025. 12. 03. 12:17:10

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

📝 수정된 파일:
  ~ com.twin.app.shoptime/src/views/PlayerPanel/PlayerPanel.jsx
  ~ com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/TabContents/FeaturedShowContents.jsx

🔧 주요 변경 내용:
  • 소규모 기능 개선
This commit is contained in:
2025-12-03 12:17:10 +09:00
parent 478849cfa1
commit c5566d8af5
2 changed files with 53 additions and 5 deletions

View File

@@ -1410,9 +1410,22 @@ const PlayerPanel = ({ isTabActivated, panelInfo, isOnTop, spotlightId, ...props
]); ]);
useEffect(() => { useEffect(() => {
console.log('[PlayerPanel] VOD useEffect 진입', {
shptmBanrTpNm: panelInfo.shptmBanrTpNm,
panelInfoShowId: panelInfo.showId,
showDetailInfoLength: showDetailInfo?.length,
showDetailInfoId: showDetailInfo?.[0]?.showId,
});
if (panelInfo.shptmBanrTpNm === 'VOD' && showDetailInfo && showDetailInfo.length > 0) { if (panelInfo.shptmBanrTpNm === 'VOD' && showDetailInfo && showDetailInfo.length > 0) {
console.log('[PlayerPanel] VOD 조건 만족');
// 현재 panelInfo의 showId와 showDetailInfo의 showId가 일치할 때만 처리 // 현재 panelInfo의 showId와 showDetailInfo의 showId가 일치할 때만 처리
if (showDetailInfo[0]?.showId === panelInfo.showId) { if (showDetailInfo[0]?.showId === panelInfo.showId) {
console.log('[PlayerPanel] showId 일치! 동영상 설정 시작', {
showId: showDetailInfo[0]?.showId,
patnrId: showDetailInfo[0]?.patnrId,
});
if (showDetailInfo[0]?.showCatCd && fullVideolgCatCd !== showDetailInfo[0]?.showCatCd) { if (showDetailInfo[0]?.showCatCd && fullVideolgCatCd !== showDetailInfo[0]?.showCatCd) {
dispatch( dispatch(
getHomeFullVideoInfo({ getHomeFullVideoInfo({
@@ -1421,16 +1434,19 @@ const PlayerPanel = ({ isTabActivated, panelInfo, isOnTop, spotlightId, ...props
); );
} }
if (showDetailInfo[0].showId && showDetailInfo[0].patnrId) { if (showDetailInfo[0].showId && showDetailInfo[0].patnrId) {
if (!featuredShowsInfos || Object.keys(featuredShowsInfos).length === 0) { console.log('[PlayerPanel] setPlayListInfo 호출');
setPlayListInfo(showDetailInfo); setPlayListInfo(showDetailInfo);
// VOD는 단일 비디오이므로 selectedIndex를 0으로 고정 // VOD는 단일 비디오이므로 selectedIndex를 0으로 고정
setSelectedIndex(0); setSelectedIndex(0);
}
setShopNowInfo(showDetailInfo[0].productInfos); setShopNowInfo(showDetailInfo[0].productInfos);
saveToLocalSettings(showDetailInfo[0].showId, showDetailInfo[0].patnrId); saveToLocalSettings(showDetailInfo[0].showId, showDetailInfo[0].patnrId);
} }
} else { } else {
// showId가 일치하지 않으면 이전 상태를 재활용하지 않고 초기화 // showId가 일치하지 않으면 이전 상태를 재활용하지 않고 초기화
console.log('[PlayerPanel] VOD showDetailInfo mismatch. Clearing playListInfo.', {
panelInfoShowId: panelInfo.showId,
showDetailInfoId: showDetailInfo[0]?.showId,
});
dlog('[PlayerPanel] VOD showDetailInfo mismatch. Clearing playListInfo.', { dlog('[PlayerPanel] VOD showDetailInfo mismatch. Clearing playListInfo.', {
panelInfoShowId: panelInfo.showId, panelInfoShowId: panelInfo.showId,
showDetailInfoId: showDetailInfo[0]?.showId, showDetailInfoId: showDetailInfo[0]?.showId,

View File

@@ -78,6 +78,14 @@ export default function FeaturedShowContents({
} = featuredShowsInfos[index]; } = featuredShowsInfos[index];
const handleItemClick = () => { const handleItemClick = () => {
console.log('[FeaturedShowContents] 클릭 발생', {
index,
showId,
showNm,
patnrId,
currentVideoShowId,
});
const params = { const params = {
tabTitle: tabTitle[tabIndex], tabTitle: tabTitle[tabIndex],
showId: showId, showId: showId,
@@ -91,6 +99,7 @@ export default function FeaturedShowContents({
dispatch(sendLogTotalRecommend(params)); dispatch(sendLogTotalRecommend(params));
//중복클릭방지 //중복클릭방지
if (isClickBlocked.current) { if (isClickBlocked.current) {
console.log('[FeaturedShowContents] 중복 클릭 방지됨');
return; return;
} }
@@ -107,16 +116,39 @@ export default function FeaturedShowContents({
}, 600); }, 600);
if (currentVideoShowId && currentVideoShowId === showId) { if (currentVideoShowId && currentVideoShowId === showId) {
console.log('[FeaturedShowContents] 동일한 showId로 클릭됨, 무시');
return; return;
} }
console.log('[FeaturedShowContents] getMainCategoryShowDetail + updatePanel 호출', {
showId,
patnrId,
lgCatCd,
});
setSelectedIndex(index); setSelectedIndex(index);
// getMainCategoryShowDetail을 먼저 호출해서 showDetailInfo를 업데이트
dispatch( dispatch(
getMainCategoryShowDetail({ getMainCategoryShowDetail({
patnrId: patnrId, patnrId: patnrId,
showId: showId, showId: showId,
}) })
); );
// 그 다음 updatePanel 호출해서 panelInfo 업데이트
dispatch(
updatePanel({
name: panel_names.PLAYER_PANEL,
panelInfo: {
patnrId: patnrId,
showId: showId,
shptmBanrTpNm: 'VOD',
lgCatCd: lgCatCd,
isUpdatedByClick: true,
},
})
);
}; };
const showNameDangerouslySetInnerHTML = () => { const showNameDangerouslySetInnerHTML = () => {