diff --git a/com.twin.app.shoptime/src/actions/brandActions.js b/com.twin.app.shoptime/src/actions/brandActions.js
index 7b835478..627bf462 100644
--- a/com.twin.app.shoptime/src/actions/brandActions.js
+++ b/com.twin.app.shoptime/src/actions/brandActions.js
@@ -37,12 +37,12 @@ export const getBrandList = () => (dispatch, getState) => {
export const getBrandLayoutInfo = (props) => (dispatch, getState) => {
const { patnrId } = props;
- console.log("[getBrandLayoutInfo] Called - patnrId:", patnrId);
+ // console.log("[getBrandLayoutInfo] Called - patnrId:", patnrId);
dispatch(changeAppStatus({ showLoadingPanel: { show: true, type: 'wait' } }));
const onSuccess = (response) => {
- console.log("[getBrandLayoutInfo] onSuccess - patnrId:", patnrId, "data:", response.data.data);
+ // console.log("[getBrandLayoutInfo] onSuccess - patnrId:", patnrId, "data:", response.data.data);
dispatch({
type: types.GET_BRAND_LAYOUT_INFO,
@@ -55,7 +55,7 @@ export const getBrandLayoutInfo = (props) => (dispatch, getState) => {
};
const onFail = (error) => {
- console.log("[getBrandLayoutInfo] onFail - patnrId:", patnrId, "error:", error);
+ // console.log("[getBrandLayoutInfo] onFail - patnrId:", patnrId, "error:", error);
derror('getBrandLayoutInfo onFail ', error);
dispatch(changeAppStatus({ showLoadingPanel: { show: false } }));
};
@@ -339,15 +339,15 @@ export const getBrandCategoryProductInfo = (props) => (dispatch, getState) => {
export const getBrandBestSeller = (props) => (dispatch, getState) => {
const { patnrId } = props;
- console.log("[getBrandBestSeller] Called - patnrId:", patnrId);
+ // console.log("[getBrandBestSeller] Called - patnrId:", patnrId);
dispatch(changeAppStatus({ showLoadingPanel: { show: true, type: 'wait' } }));
const onSuccess = (response) => {
- console.log("[getBrandBestSeller] onSuccess - patnrId:", patnrId);
- console.log("[getBrandBestSeller] Full response:", response.data.data);
- console.log("[getBrandBestSeller] brandBestSellerInfo:", response.data.data.brandBestSellerInfo);
- console.log("[getBrandBestSeller] brandBestSellerTitle in response:", response.data.data.brandBestSellerTitle);
+ // console.log("[getBrandBestSeller] onSuccess - patnrId:", patnrId);
+ // console.log("[getBrandBestSeller] Full response:", response.data.data);
+ // console.log("[getBrandBestSeller] brandBestSellerInfo:", response.data.data.brandBestSellerInfo);
+ // console.log("[getBrandBestSeller] brandBestSellerTitle in response:", response.data.data.brandBestSellerTitle);
dispatch({
type: types.GET_BRAND_BEST_SELLER,
@@ -360,7 +360,7 @@ export const getBrandBestSeller = (props) => (dispatch, getState) => {
};
const onFail = (error) => {
- console.log("[getBrandBestSeller] onFail - patnrId:", patnrId, "error:", error);
+ // console.log("[getBrandBestSeller] onFail - patnrId:", patnrId, "error:", error);
derror('getBrandBestSeller onFail ', error);
dispatch(changeAppStatus({ showLoadingPanel: { show: false } }));
};
@@ -399,12 +399,12 @@ export const getBrandShowroom = (props) => (dispatch, getState) => {
export const getBrandShopByShow = (props) => (dispatch, getState) => {
const { patnrId, contsId } = props;
- console.log("[getBrandShopByShow] Called - patnrId:", patnrId, "contsId:", contsId);
+ // console.log("[getBrandShopByShow] Called - patnrId:", patnrId, "contsId:", contsId);
dispatch(changeAppStatus({ showLoadingPanel: { show: true, type: 'wait' } }));
const onSuccess = (response) => {
- console.log("[getBrandShopByShow] onSuccess - patnrId:", patnrId, "data:", response.data.data);
+ // console.log("[getBrandShopByShow] onSuccess - patnrId:", patnrId, "data:", response.data.data);
dispatch({
type: types.GET_BRAND_SHOP_BY_SHOW,
@@ -419,7 +419,7 @@ export const getBrandShopByShow = (props) => (dispatch, getState) => {
};
const onFail = (error) => {
- console.log("[getBrandShopByShow] onFail - patnrId:", patnrId, "error:", error);
+ // console.log("[getBrandShopByShow] onFail - patnrId:", patnrId, "error:", error);
derror('getBrandShopByShow onFail ', error);
dispatch(changeAppStatus({ showLoadingPanel: { show: false } }));
};
@@ -434,7 +434,7 @@ export const getBrandShopByShow = (props) => (dispatch, getState) => {
export const getBrandTopBanner = (props) => (dispatch, getState) => {
const { patnrId } = props;
- console.log("[BRAND-TOP-BANNER-API] Called - patnrId:", patnrId);
+ // console.log("[BRAND-TOP-BANNER-API] Called - patnrId:", patnrId);
// NBCU(patnrId: 21)가 아니면 호출하지 않음
if (patnrId !== 21 && patnrId !== "21") {
@@ -445,9 +445,9 @@ export const getBrandTopBanner = (props) => (dispatch, getState) => {
dispatch(changeAppStatus({ showLoadingPanel: { show: true, type: 'wait' } }));
const onSuccess = (response) => {
- console.log("[BRAND-TOP-BANNER-API] onSuccess - patnrId:", patnrId);
- console.log("[BRAND-TOP-BANNER-API] Full response data:", response.data.data);
- console.log("[BRAND-TOP-BANNER-API] brandTopBannerInfo:", response.data.data.brandTopBannerInfo);
+ // console.log("[BRAND-TOP-BANNER-API] onSuccess - patnrId:", patnrId);
+ // console.log("[BRAND-TOP-BANNER-API] Full response data:", response.data.data);
+ // console.log("[BRAND-TOP-BANNER-API] brandTopBannerInfo:", response.data.data.brandTopBannerInfo);
dispatch({
type: types.GET_BRAND_TOP_BANNER,
@@ -460,7 +460,7 @@ export const getBrandTopBanner = (props) => (dispatch, getState) => {
};
const onFail = (error) => {
- console.log("[BRAND-TOP-BANNER-API] onFail - patnrId:", patnrId, "error:", error);
+ // console.log("[BRAND-TOP-BANNER-API] onFail - patnrId:", patnrId, "error:", error);
derror('getBrandTopBanner onFail ', error);
dispatch(changeAppStatus({ showLoadingPanel: { show: false } }));
};
diff --git a/com.twin.app.shoptime/src/views/DetailPanel/DetailPanel.jsx b/com.twin.app.shoptime/src/views/DetailPanel/DetailPanel.jsx
index 08c9e3bd..f2af6e9b 100644
--- a/com.twin.app.shoptime/src/views/DetailPanel/DetailPanel.jsx
+++ b/com.twin.app.shoptime/src/views/DetailPanel/DetailPanel.jsx
@@ -1025,34 +1025,56 @@ export default function DetailPanel({ panelInfo, isOnTop, spotlightId }) {
// ProductAllSection에 비디오가 있는지 확인
const hasProductVideo = fp.pipe(() => productData, fp.get('prdtMediaUrl'), fp.isNotNil)();
- console.log('[BgVideo] DetailPanel - Video Control Check:', {
+ console.log('[Detail-BG] 🎬 DetailPanel - Video Control Check (mount/update):', {
hasPlayerPanel,
- isModal,
+ playerPanelModalStatus: isModal,
hasProductVideo,
sourceMenu: panelInfo?.sourceMenu,
+ productDataUrl: productData?.prdtMediaUrl,
+ timestamp: Date.now(),
});
// PlayerPanel이 있고, 제품에 비디오가 있을 때만 비디오 멈춤
if (hasPlayerPanel && hasProductVideo) {
- console.log('[BgVideo] DetailPanel - Pausing video');
+ console.log('[Detail-BG] ⏸️ DetailPanel - Pausing PlayerPanel video (match: playerPanel + productVideo)', {
+ isModalVideo: isModal,
+ action: isModal ? 'pauseModalVideo' : 'pauseFullscreenVideo',
+ timestamp: Date.now(),
+ });
if (isModal) {
dispatch(pauseModalVideo());
} else {
dispatch(pauseFullscreenVideo());
}
} else {
- console.log('[BgVideo] DetailPanel - Skipping pause');
+ console.log('[Detail-BG] ⏭️ DetailPanel - Skipping pause (no playerPanel or no productVideo)', {
+ hasPlayerPanel,
+ hasProductVideo,
+ reason: !hasPlayerPanel ? 'no playerPanel' : 'no productVideo',
+ timestamp: Date.now(),
+ });
}
return () => {
// DetailPanel 언마운트 시: 비디오가 있었고 멈췄던 경우만 재생 재개
if (hasPlayerPanel && hasProductVideo) {
- console.log('[BgVideo] DetailPanel - Resuming video');
+ console.log('[Detail-BG] ▶️ DetailPanel - Resuming PlayerPanel video (unmount cleanup)', {
+ isModalVideo: isModal,
+ action: isModal ? 'resumeModalVideo' : 'resumeFullscreenVideo',
+ sourceMenu: panelInfo?.sourceMenu,
+ timestamp: Date.now(),
+ });
if (isModal) {
dispatch(resumeModalVideo());
} else {
dispatch(resumeFullscreenVideo());
}
+ } else {
+ console.log('[Detail-BG] ⏭️ DetailPanel - Skipping resume on unmount', {
+ hasPlayerPanel,
+ hasProductVideo,
+ timestamp: Date.now(),
+ });
}
};
// eslint-disable-next-line react-hooks/exhaustive-deps
diff --git a/com.twin.app.shoptime/src/views/DetailPanel/components/DetailPanelBackground/DetailPanelBackground.jsx b/com.twin.app.shoptime/src/views/DetailPanel/components/DetailPanelBackground/DetailPanelBackground.jsx
index 375010e2..4cbceda7 100644
--- a/com.twin.app.shoptime/src/views/DetailPanel/components/DetailPanelBackground/DetailPanelBackground.jsx
+++ b/com.twin.app.shoptime/src/views/DetailPanel/components/DetailPanelBackground/DetailPanelBackground.jsx
@@ -77,26 +77,32 @@ export default function DetailPanelBackground({
useEffect(() => {
// launchedFromPlayer가 true이면 배경 이미지를 로드하지 않음 (PlayerPanel 비디오 보이도록)
if (launchedFromPlayer) {
- // console.log('[DetailPanelBackground] Skip background image loading - launchedFromPlayer=true (showing PlayerPanel video)');
+ console.log('[Detail-BG] 🔵 DetailPanelBackground - Skip background image (launchedFromPlayer=true, showing PlayerPanel video)', {
+ launchedFromPlayer,
+ timestamp: Date.now(),
+ });
setImageReady(false);
return;
}
// launchedFromPlayer가 false일 때만 배경 이미지 로드
- // console.log('[DetailPanelBackground] Loading background image - launchedFromPlayer=false');
+ console.log('[Detail-BG] 🟢 DetailPanelBackground - Loading background image (launchedFromPlayer=false)', {
+ patnrId,
+ imagePath: detailPanelBg,
+ });
if (ImagePreloader.isLoaded(detailPanelBg)) {
- // console.log('[DetailPanelBackground] Using preloaded image:', detailPanelBg);
+ console.log('[Detail-BG] ✅ DetailPanelBackground - Using preloaded image:', detailPanelBg);
setImageReady(true);
} else {
// 프리로드되지 않았다면 즉시 로드 시도
- // console.log('[DetailPanelBackground] Image not preloaded, loading on-demand:', detailPanelBg);
+ console.log('[Detail-BG] 📥 DetailPanelBackground - Image not preloaded, loading on-demand:', detailPanelBg);
ImagePreloader.preloadImage(detailPanelBg)
.then(() => {
- // console.log('[DetailPanelBackground] On-demand image loaded:', detailPanelBg);
+ console.log('[Detail-BG] ✅ DetailPanelBackground - On-demand image loaded:', detailPanelBg);
setImageReady(true);
})
.catch((e) => {
- // console.error('[DetailPanelBackground] On-demand image load failed:', e);
+ console.error('[Detail-BG] ❌ DetailPanelBackground - On-demand image load failed:', e);
// 실패해도 이미지를 표시해야 함
setImageReady(true);
});
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/Banner/Banner.jsx b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/Banner/Banner.jsx
index dfe9f9aa..2ede7d72 100644
--- a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/Banner/Banner.jsx
+++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/Banner/Banner.jsx
@@ -20,11 +20,11 @@ export default memo(function Banner({
// NBCU(patnrId: 21)인 경우 Top Banner 정보 사용
const isNBCU = selectedPatnrId === 21 || selectedPatnrId === "21";
- console.log("[FB-BANNER-COMP] ===== BANNER COMPONENT START =====");
- console.log("[FB-BANNER-COMP] selectedPatnrId:", selectedPatnrId, "(type:", typeof selectedPatnrId, ")");
- console.log("[FB-BANNER-COMP] panelPatnrId:", panelPatnrId, "(type:", typeof panelPatnrId, ")");
- console.log("[FB-BANNER-COMP] isNBCU:", isNBCU);
- console.log("[FB-BANNER-COMP] brandTopBannerInfo:", brandTopBannerInfo);
+ // console.log("[FB-BANNER-COMP] ===== BANNER COMPONENT START =====");
+ // console.log("[FB-BANNER-COMP] selectedPatnrId:", selectedPatnrId, "(type:", typeof selectedPatnrId, ")");
+ // console.log("[FB-BANNER-COMP] panelPatnrId:", panelPatnrId, "(type:", typeof panelPatnrId, ")");
+ // console.log("[FB-BANNER-COMP] isNBCU:", isNBCU);
+ // console.log("[FB-BANNER-COMP] brandTopBannerInfo:", brandTopBannerInfo);
// Top Banner 정보에서 필요한 필드 추출
const {
@@ -41,17 +41,16 @@ export default memo(function Banner({
const bannerImageSrc = topImgPath; // isNBCU ? banrImgUrl : topImgPath;
const bannerImageAlt = topImgAlt; // isNBCU ? banrImgNm || banrNm : topImgAlt;
- console.log("[FB-BANNER-COMP] Top Banner 이미지는 현재 비활성화됨");
- if (isNBCU && brandTopBannerInfo) {
- console.log("[FB-BANNER-COMP] NBCU Top Banner 데이터 수신 (사용하지 않음):");
- console.log("[FB-BANNER-COMP] - banrImgUrl:", banrImgUrl);
- console.log("[FB-BANNER-COMP] - pupBanrImgUrl:", pupBanrImgUrl);
- console.log("[FB-BANNER-COMP] - pupBanrTtl:", pupBanrTtl);
- }
- console.log("[FB-BANNER-COMP] Using original Top Image");
- console.log("[FB-BANNER-COMP] bannerImageSrc:", bannerImageSrc);
- console.log("[FB-BANNER-COMP] ===== BANNER COMPONENT END =====");
-
+ // console.log("[FB-BANNER-COMP] Top Banner 이미지는 현재 비활성화됨");
+ // if (isNBCU && brandTopBannerInfo) {
+ // console.log("[FB-BANNER-COMP] NBCU Top Banner 데이터 수신 (사용하지 않음):");
+ // console.log("[FB-BANNER-COMP] - banrImgUrl:", banrImgUrl);
+ // console.log("[FB-BANNER-COMP] - pupBanrImgUrl:", pupBanrImgUrl);
+ // console.log("[FB-BANNER-COMP] - pupBanrTtl:", pupBanrTtl);
+ // }
+ // console.log("[FB-BANNER-COMP] Using original Top Image");
+ // console.log("[FB-BANNER-COMP] bannerImageSrc:", bannerImageSrc);
+ // console.log("[FB-BANNER-COMP] ===== BANNER COMPONENT END =====");
return (
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBestSeller/FeaturedBestSeller.jsx b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBestSeller/FeaturedBestSeller.jsx
index 5136aa46..3c437c81 100644
--- a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBestSeller/FeaturedBestSeller.jsx
+++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBestSeller/FeaturedBestSeller.jsx
@@ -32,8 +32,8 @@ const FeaturedBestSeller = ({
// brandBestSellerTitle 우선 사용, 없으면 shelfTitle, 없으면 기본값
const displayTitle = brandBestSellerTitle || shelfTitle || $L(STRING_CONF.BEST_SELLER);
- console.log("[FeaturedBestSeller] brandBestSellerTitle:", brandBestSellerTitle);
- console.log("[FeaturedBestSeller] displayTitle:", displayTitle);
+ // console.log("[FeaturedBestSeller] brandBestSellerTitle:", brandBestSellerTitle);
+ // console.log("[FeaturedBestSeller] displayTitle:", displayTitle);
const _handleItemFocus = useCallback(() => {
if (handleItemFocus) handleItemFocus(spotlightId, shelfOrder);
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBestSeller/FeaturedBestSellerList/FeaturedBestSellerList.jsx b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBestSeller/FeaturedBestSellerList/FeaturedBestSellerList.jsx
index 3779e532..e6279546 100644
--- a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBestSeller/FeaturedBestSellerList/FeaturedBestSellerList.jsx
+++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBestSeller/FeaturedBestSellerList/FeaturedBestSellerList.jsx
@@ -60,9 +60,9 @@ export default function FeaturedBestSellerList({
const panelInfo = useSelector((state) => state.panels.panels[0]?.panelInfo);
- console.log("[FeaturedBestSellerList] Mounted - selectedPatnrId:", selectedPatnrId);
- console.log("[FeaturedBestSellerList] brandBestSellerInfo:", brandBestSellerInfo);
- console.log("[FeaturedBestSellerList] Data count:", brandBestSellerInfo?.length || 0);
+ // console.log("[FeaturedBestSellerList] Mounted - selectedPatnrId:", selectedPatnrId);
+ // console.log("[FeaturedBestSellerList] brandBestSellerInfo:", brandBestSellerInfo);
+ // console.log("[FeaturedBestSellerList] Data count:", brandBestSellerInfo?.length || 0);
const cursorVisible = useSelector(
(state) => state.common.appStatus.cursorVisible
@@ -160,7 +160,7 @@ export default function FeaturedBestSellerList({
euEnrgLblInfos,
} = brandBestSellerInfo[index];
- console.log("[FeaturedBestSellerList] renderItem - index:", index, "patnrId:", patnrId, "rankOrd:", rankOrd, "prdtNm:", prdtNm);
+ // console.log("[FeaturedBestSellerList] renderItem - index:", index, "patnrId:", patnrId, "rankOrd:", rankOrd, "prdtNm:", prdtNm);
const rankText =
rankOrd === 1
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBrandsPanel.jsx b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBrandsPanel.jsx
index c6c9fa05..f6b48392 100644
--- a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBrandsPanel.jsx
+++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBrandsPanel.jsx
@@ -448,12 +448,12 @@ const FeaturedBrandsPanel = ({ isOnTop, panelInfo, spotlightId }) => {
);
const renderPageItem = useCallback(() => {
- console.log("[FeaturedBrandsPanel] renderPageItem - sortedBrandLayoutInfo length:", sortedBrandLayoutInfo.length);
- console.log("[FeaturedBrandsPanel] renderPageItem - sortedBrandLayoutInfo items:", sortedBrandLayoutInfo.map(el => el.shptmBrndOptTpCd));
+ // console.log("[FeaturedBrandsPanel] renderPageItem - sortedBrandLayoutInfo length:", sortedBrandLayoutInfo.length);
+ // console.log("[FeaturedBrandsPanel] renderPageItem - sortedBrandLayoutInfo items:", sortedBrandLayoutInfo.map(el => el.shptmBrndOptTpCd));
return (
<>
{sortedBrandLayoutInfo.map((el, idx) => {
- console.log("[FeaturedBrandsPanel] Processing template code:", el.shptmBrndOptTpCd);
+ // console.log("[FeaturedBrandsPanel] Processing template code:", el.shptmBrndOptTpCd);
switch (el.shptmBrndOptTpCd) {
case TEMPLATE_CODE_CONF.LIVE_CHANNELS: {
return (
@@ -524,10 +524,10 @@ const FeaturedBrandsPanel = ({ isOnTop, panelInfo, spotlightId }) => {
}
case TEMPLATE_CODE_CONF.BEST_SELLER: {
- console.log("[FeaturedBrandsPanel] BEST_SELLER - patnrId:", selectedPatnrId);
- console.log("[FeaturedBrandsPanel] BEST_SELLER - hasTemplateCode:", hasTemplateCodeWithValue(sortedBrandLayoutInfo, TEMPLATE_CODE_CONF.BEST_SELLER));
- console.log("[FeaturedBrandsPanel] BEST_SELLER - shouldRender:", shouldRenderComponent(brandBestSellerInfo));
- console.log("[FeaturedBrandsPanel] BEST_SELLER - data:", brandBestSellerInfo);
+ // console.log("[FeaturedBrandsPanel] BEST_SELLER - patnrId:", selectedPatnrId);
+ // console.log("[FeaturedBrandsPanel] BEST_SELLER - hasTemplateCode:", hasTemplateCodeWithValue(sortedBrandLayoutInfo, TEMPLATE_CODE_CONF.BEST_SELLER));
+ // console.log("[FeaturedBrandsPanel] BEST_SELLER - shouldRender:", shouldRenderComponent(brandBestSellerInfo));
+ // console.log("[FeaturedBrandsPanel] BEST_SELLER - data:", brandBestSellerInfo);
return (
{hasTemplateCodeWithValue(
@@ -536,7 +536,7 @@ const FeaturedBrandsPanel = ({ isOnTop, panelInfo, spotlightId }) => {
) &&
shouldRenderComponent(brandBestSellerInfo) && (
<>
- {console.log("[FeaturedBrandsPanel] Rendering FeaturedBestSeller for patnrId:", selectedPatnrId)}
+ {/* {console.log("[FeaturedBrandsPanel] Rendering FeaturedBestSeller for patnrId:", selectedPatnrId)} */}
{
}
case TEMPLATE_CODE_CONF.NBCU: {
- console.log("[FeaturedBrandsPanel] NBCU - patnrId:", selectedPatnrId);
- console.log("[FeaturedBrandsPanel] NBCU - hasTemplateCode:", hasTemplateCodeWithValue(sortedBrandLayoutInfo, TEMPLATE_CODE_CONF.NBCU));
- console.log("[FeaturedBrandsPanel] NBCU - shouldRender:", shouldRenderComponent(brandShopByShowContsList));
- console.log("[FeaturedBrandsPanel] NBCU - data:", brandShopByShowContsList);
+ // console.log("[FeaturedBrandsPanel] NBCU - patnrId:", selectedPatnrId);
+ // console.log("[FeaturedBrandsPanel] NBCU - hasTemplateCode:", hasTemplateCodeWithValue(sortedBrandLayoutInfo, TEMPLATE_CODE_CONF.NBCU));
+ // console.log("[FeaturedBrandsPanel] NBCU - shouldRender:", shouldRenderComponent(brandShopByShowContsList));
+ // console.log("[FeaturedBrandsPanel] NBCU - data:", brandShopByShowContsList);
return (
{hasTemplateCodeWithValue(
@@ -711,7 +711,7 @@ const FeaturedBrandsPanel = ({ isOnTop, panelInfo, spotlightId }) => {
) &&
shouldRenderComponent(brandShopByShowContsList) && (
<>
- {console.log("[FeaturedBrandsPanel] Rendering ShopByShow for patnrId:", selectedPatnrId)}
+ {/* {console.log("[FeaturedBrandsPanel] Rendering ShopByShow for patnrId:", selectedPatnrId)} */}
{
// effect: layout information fetching due to partner id change
useEffect(() => {
if (!fromDetail) {
- console.log("[FeaturedBrandsPanel] Layout Info Effect - patnrId:", panelInfo?.patnrId);
+ // console.log("[FeaturedBrandsPanel] Layout Info Effect - patnrId:", panelInfo?.patnrId);
dispatch({ type: types.RESET_BRAND_LAYOUT_INFO });
dispatch(getBrandLayoutInfo({ patnrId: panelInfo?.patnrId }));
setIsInitialFocusOccurred(false);
@@ -818,9 +818,9 @@ const FeaturedBrandsPanel = ({ isOnTop, panelInfo, spotlightId }) => {
// effect: data fetching based on brandLayoutInfo and selectedPatnrId
useEffect(() => {
- console.log("[FB-PANEL-DATA-FETCH] Effect triggered");
- console.log("[FB-PANEL-DATA-FETCH] sortedBrandLayoutInfo:", sortedBrandLayoutInfo);
- console.log("[FB-PANEL-DATA-FETCH] selectedPatnrId:", selectedPatnrId);
+ // console.log("[FB-PANEL-DATA-FETCH] Effect triggered");
+ // console.log("[FB-PANEL-DATA-FETCH] sortedBrandLayoutInfo:", sortedBrandLayoutInfo);
+ // console.log("[FB-PANEL-DATA-FETCH] selectedPatnrId:", selectedPatnrId);
// 🆕 [251210] patnrId 변경 시 조회 상태 초기화
if (selectedPatnrId) {
@@ -828,14 +828,14 @@ const FeaturedBrandsPanel = ({ isOnTop, panelInfo, spotlightId }) => {
// 이전 patnrId와 다르면 ref 초기화
const currentFetchKeys = Array.from(fetchedCategoryGroupsRef.current).filter(key => key.startsWith(patnrIdString));
if (currentFetchKeys.length === 0) {
- console.log("[FB-PANEL-DATA-FETCH] patnrId changed, clearing category group fetch status");
+ // console.log("[FB-PANEL-DATA-FETCH] patnrId changed, clearing category group fetch status");
// 다른 patnrId로 전환 시 ref 초기화
fetchedCategoryGroupsRef.current.clear();
}
}
if (sortedBrandLayoutInfo && selectedPatnrId) {
- console.log("[FB-PANEL-DATA-FETCH] Fetching data - patnrId:", selectedPatnrId);
+ // console.log("[FB-PANEL-DATA-FETCH] Fetching data - patnrId:", selectedPatnrId);
Object.entries(DISPATCH_MAP) //
.forEach(([templateCode, action]) => {
if (hasTemplateCodeWithValue(sortedBrandLayoutInfo, templateCode)) {
@@ -845,20 +845,20 @@ const FeaturedBrandsPanel = ({ isOnTop, panelInfo, spotlightId }) => {
fromDetail &&
shouldRenderComponent(brandShopByShowContsList)
) {
- console.log("[FB-PANEL-DATA-FETCH] Skip re-fetch ShopByShow on return from detail");
+ // console.log("[FB-PANEL-DATA-FETCH] Skip re-fetch ShopByShow on return from detail");
return;
}
- console.log("[FB-PANEL-DATA-FETCH] Dispatching for template:", templateCode, "patnrId:", selectedPatnrId);
+ // console.log("[FB-PANEL-DATA-FETCH] Dispatching for template:", templateCode, "patnrId:", selectedPatnrId);
dispatch(action({ patnrId: selectedPatnrId }));
}
});
// NBCU(patnrId: 21)인 경우 Top Banner API 호출
if (selectedPatnrId === 21 || selectedPatnrId === "21") {
- console.log("[FB-PANEL-TOP-BANNER] NBCU(patnrId=21) detected - calling Top Banner API");
- console.log("[FB-PANEL-TOP-BANNER] selectedPatnrId:", selectedPatnrId, "(type:", typeof selectedPatnrId, ")");
- console.log("[FB-PANEL-TOP-BANNER] Before API call - brandTopBannerInfo:", brandTopBannerInfo);
+ // console.log("[FB-PANEL-TOP-BANNER] NBCU(patnrId=21) detected - calling Top Banner API");
+ // console.log("[FB-PANEL-TOP-BANNER] selectedPatnrId:", selectedPatnrId, "(type:", typeof selectedPatnrId, ")");
+ // console.log("[FB-PANEL-TOP-BANNER] Before API call - brandTopBannerInfo:", brandTopBannerInfo);
dispatch(getBrandTopBanner({ patnrId: selectedPatnrId }));
}
@@ -869,8 +869,8 @@ const FeaturedBrandsPanel = ({ isOnTop, panelInfo, spotlightId }) => {
// 🆕 [251210] patnrId=21인 경우 모든 카테고리 그룹 데이터 미리 조회
useEffect(() => {
if (selectedPatnrId === 21 || selectedPatnrId === "21") {
- console.log("[FB-PANEL-CATEGORY-GROUPS] patnrId=21 detected - fetching all category group data");
- console.log("[FB-PANEL-CATEGORY-GROUPS] brandShopByShowContsList:", brandShopByShowContsList);
+ // console.log("[FB-PANEL-CATEGORY-GROUPS] patnrId=21 detected - fetching all category group data");
+ // console.log("[FB-PANEL-CATEGORY-GROUPS] brandShopByShowContsList:", brandShopByShowContsList);
// 각 카테고리(contsId)별 그룹 데이터 조회
if (brandShopByShowContsList && brandShopByShowContsList.length > 0) {
@@ -879,14 +879,14 @@ const FeaturedBrandsPanel = ({ isOnTop, panelInfo, spotlightId }) => {
// useRef로 이미 조회된 contsId 추적 (무한루프 방지)
if (!fetchedCategoryGroupsRef.current.has(fetchKey)) {
- console.log("[FB-PANEL-CATEGORY-GROUPS] Fetching category group for contsId:", conts.contsId);
+ // console.log("[FB-PANEL-CATEGORY-GROUPS] Fetching category group for contsId:", conts.contsId);
fetchedCategoryGroupsRef.current.add(fetchKey); // 조회 상태 기록
dispatch(getBrandShopByShow({
patnrId: selectedPatnrId,
contsId: conts.contsId
}));
} else {
- console.log("[FB-PANEL-CATEGORY-GROUPS] Category group already fetched for contsId:", conts.contsId);
+ // console.log("[FB-PANEL-CATEGORY-GROUPS] Category group already fetched for contsId:", conts.contsId);
}
});
}
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/TopBannerImage/TopBannerImage.jsx b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/TopBannerImage/TopBannerImage.jsx
index e4c13deb..fecaebba 100644
--- a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/TopBannerImage/TopBannerImage.jsx
+++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/TopBannerImage/TopBannerImage.jsx
@@ -15,16 +15,16 @@ import css from './TopBannerImage.module.less';
const SpottableDiv = Spottable("div");
const TopBannerImage = memo(({ banrImgUrl, banrImgNm, banrNm, pupBanrImgUrl, pupBanrImgNm, spotlightId }) => {
- console.log("[TOP-BANNER-IMG] Rendering with URL:", banrImgUrl);
- console.log("[TOP-BANNER-IMG] spotlightId:", spotlightId);
+ // console.log("[TOP-BANNER-IMG] Rendering with URL:", banrImgUrl);
+ // console.log("[TOP-BANNER-IMG] spotlightId:", spotlightId);
const dispatch = useDispatch();
const [imageDimensions, setImageDimensions] = useState({ width: 0, height: 0 });
const handleClick = useCallback(() => {
- console.log("[TOP-BANNER-IMG] Clicked - Opening popup");
+ // console.log("[TOP-BANNER-IMG] Clicked - Opening popup");
if (pupBanrImgUrl) {
- console.log("[TOP-BANNER-IMG] Dispatching topBannerImagePopup");
+ // console.log("[TOP-BANNER-IMG] Dispatching topBannerImagePopup");
dispatch(setShowPopup({
activePopup: 'topBannerImagePopup',
data: {
@@ -37,7 +37,7 @@ const TopBannerImage = memo(({ banrImgUrl, banrImgNm, banrNm, pupBanrImgUrl, pup
const handleImageLoad = useCallback((e) => {
const img = e.target;
- console.log("[TOP-BANNER-IMG] Image loaded - dimensions:", img.naturalWidth, "x", img.naturalHeight);
+ // console.log("[TOP-BANNER-IMG] Image loaded - dimensions:", img.naturalWidth, "x", img.naturalHeight);
// 원본 이미지 크기
const naturalWidth = img.naturalWidth;
@@ -50,7 +50,7 @@ const TopBannerImage = memo(({ banrImgUrl, banrImgNm, banrNm, pupBanrImgUrl, pup
}, []);
if (!banrImgUrl) {
- console.log("[TOP-BANNER-IMG] No image URL provided");
+ // console.log("[TOP-BANNER-IMG] No image URL provided");
return null;
}
diff --git a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerPanel.jsx b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerPanel.jsx
index 02d13508..bf1b9540 100644
--- a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerPanel.jsx
+++ b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerPanel.jsx
@@ -1161,6 +1161,7 @@ const PlayerPanel = ({ isTabActivated, panelInfo, isOnTop, spotlightId, ...props
}
if (!panelInfo.modal) {
+ console.log('[PlayerPanel] popPanel - closeButtonHandler');
dispatch(PanelActions.popPanel());
dispatch(changeAppStatus({ cursorVisible: false }));
@@ -1192,6 +1193,7 @@ const PlayerPanel = ({ isTabActivated, panelInfo, isOnTop, spotlightId, ...props
return () => {
// 패널이 2개 존재할때만 popPanel 진행
if (panelInfo.modal && !isOnTop) {
+ console.log('[PlayerPanel] popPanel - useEffect cleanup');
dispatch(PanelActions.popPanel());
} else {
Spotlight.focus('tbody');
@@ -1810,9 +1812,10 @@ const PlayerPanel = ({ isTabActivated, panelInfo, isOnTop, spotlightId, ...props
panelInfo?.modalContainerId
) {
// case: Featured Brands
- if (panelInfo?.sourcePanel === panel_names.FEATURED_BRANDS_PANEL) {
- dispatch(PanelActions.popPanel());
- }
+ // if (panelInfo?.sourcePanel === panel_names.FEATURED_BRANDS_PANEL) {
+ // dispatch(PanelActions.popPanel());
+ // }
+ console.log('[PlayerPanel] Condition 4: Handling video error in fullscreen mode');
}
}, [
broadcast?.type,
@@ -2384,6 +2387,7 @@ const PlayerPanel = ({ isTabActivated, panelInfo, isOnTop, spotlightId, ...props
);
Spotlight.pause();
timeoutRef.current = setTimeout(() => {
+ console.log('[PlayerPanel] popPanel - VIDEO_END_ACTION_DELAY');
Spotlight.resume();
dispatch(PanelActions.popPanel());
}, VIDEO_END_ACTION_DELAY);