diff --git a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerOverlay/PlayerOverlayContents.jsx b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerOverlay/PlayerOverlayContents.jsx index a333f5e3..d3ea63e5 100644 --- a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerOverlay/PlayerOverlayContents.jsx +++ b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerOverlay/PlayerOverlayContents.jsx @@ -218,7 +218,8 @@ function PlayerOverlayContents({ return ( <> - {shouldShowExtendedControls && playListInfo.length > 1 && noLiveContentsVisible && ( + {/* 251118 임시로 unvisible */} + {/* {shouldShowExtendedControls && playListInfo.length > 1 && noLiveContentsVisible && ( <>
- )} + )} */} {currentSideButtonStatus && !videoVerticalVisible && ( setTabIndexV2(0)} onLiveChannelButtonClick={() => setTabIndexV2(2)} + onLiveNext={handleIndicatorDownClick} onTabClose={(newTabIndex) => setTabIndexV2(newTabIndex)} tabVisible={belowContentsVisible} /> diff --git a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/v2/LiveChannelNext.jsx b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/v2/LiveChannelNext.jsx index 2beaf527..a309a304 100644 --- a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/v2/LiveChannelNext.jsx +++ b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/v2/LiveChannelNext.jsx @@ -43,10 +43,10 @@ export default function LiveChannelNext({ )} - + {channelName} - + {programName} {/*
diff --git a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/v2/LiveChannelNext.module.less b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/v2/LiveChannelNext.module.less index 15e953a9..bb107a75 100644 --- a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/v2/LiveChannelNext.module.less +++ b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/v2/LiveChannelNext.module.less @@ -78,8 +78,7 @@ white-space: nowrap; overflow: hidden; min-width: 0; - max-width: 100px; // 최대 너비 제한 - text-overflow: ellipsis; + max-width: 120px; // 최대 너비 제한 완화 } .programName { @@ -92,8 +91,7 @@ flex: 1; min-width: 0; overflow: hidden; - max-width: 150px; // 최대 너비 제한 - text-overflow: ellipsis; + max-width: 180px; // 최대 너비 제한 완화 } diff --git a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/v2/TabContainer.v2.jsx b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/v2/TabContainer.v2.jsx index 2c5f0f5d..0c8bdfb0 100644 --- a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/v2/TabContainer.v2.jsx +++ b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/v2/TabContainer.v2.jsx @@ -1,4 +1,4 @@ -import React, { useCallback, useEffect } from 'react'; +import React, { useCallback, useEffect, useMemo } from 'react'; import classNames from 'classnames'; import { useSelector } from 'react-redux'; @@ -38,11 +38,39 @@ export default function TabContainerV2({ tabIndex = 1, // tabIndex prop으로 제어 (0: ShopNow, 1: LiveChannel, 2: ShopNowButton) onShopNowButtonClick, onLiveChannelButtonClick, + onLiveNext, onTabClose, // 탭 닫기 콜백 함수 tabVisible, }) { const youmaylikeInfos = useSelector((state) => state.main.youmaylikeInfos); + // 다음 재생 가능한 쇼 찾기 + const findNextPlayableShow = useCallback((currentPlayList, currentIndex) => { + if (!currentPlayList || currentPlayList.length === 0) return null; + + let nextIndex = currentIndex === currentPlayList.length - 1 ? 0 : currentIndex + 1; + let initialIndex = nextIndex; + let attempts = 0; + + // 유효한 showId를 가진 다음 쇼 찾기 + while (!currentPlayList[nextIndex]?.showId && attempts < currentPlayList.length) { + nextIndex = nextIndex === currentPlayList.length - 1 ? 0 : nextIndex + 1; + attempts++; + if (nextIndex === initialIndex) break; + } + + if (currentPlayList[nextIndex]?.showId) { + return currentPlayList[nextIndex]; + } + + return null; + }, []); + + // 다음 쇼 정보 계산 + const nextShowInfo = useMemo(() => { + return findNextPlayableShow(playListInfo, selectedIndex); + }, [playListInfo, selectedIndex, findNextPlayableShow]); + // ✨ DEBUG: youmaylikeInfos 데이터 로그 useEffect(() => { console.log('[DEBUG] TabContainerV2 - youmaylikeInfos:', { @@ -242,9 +270,14 @@ export default function TabContainerV2({ {tabVisible && tabIndex === 2 && ( <>