From 59ac371e63c628c0ff97a17f00cca8acc00a2e39 Mon Sep 17 00:00:00 2001 From: optrader Date: Thu, 20 Nov 2025 15:12:55 +0900 Subject: [PATCH] [251120] fix: Before Launche HotPicksPanel remove PlayerPanel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit πŸ• 컀밋 μ‹œκ°„: 2025. 11. 20. 15:12:55 πŸ“Š λ³€κ²½ 톡계: β€’ 총 파일: 3개 β€’ μΆ”κ°€: +32쀄 β€’ μ‚­μ œ: -10쀄 πŸ“ μˆ˜μ •λœ 파일: ~ com.twin.app.shoptime/src/views/HomePanel/EventPopUpBanner/EventPopUpBanner.jsx ~ com.twin.app.shoptime/src/views/HomePanel/HomeBanner/RandomUnit.jsx ~ com.twin.app.shoptime/src/views/HomePanel/HomeBanner/RollingUnit.jsx πŸ”§ μ£Όμš” λ³€κ²½ λ‚΄μš©: β€’ μ†Œκ·œλͺ¨ κΈ°λŠ₯ κ°œμ„  --- .../EventPopUpBanner/EventPopUpBanner.jsx | 29 ++++++++++++++----- .../views/HomePanel/HomeBanner/RandomUnit.jsx | 3 +- .../HomePanel/HomeBanner/RollingUnit.jsx | 10 ++++++- 3 files changed, 32 insertions(+), 10 deletions(-) diff --git a/com.twin.app.shoptime/src/views/HomePanel/EventPopUpBanner/EventPopUpBanner.jsx b/com.twin.app.shoptime/src/views/HomePanel/EventPopUpBanner/EventPopUpBanner.jsx index f310ecab..609f95d6 100644 --- a/com.twin.app.shoptime/src/views/HomePanel/EventPopUpBanner/EventPopUpBanner.jsx +++ b/com.twin.app.shoptime/src/views/HomePanel/EventPopUpBanner/EventPopUpBanner.jsx @@ -14,7 +14,7 @@ import { import { setEventPopClickInfo } from '../../../actions/eventActions'; import { sendLogGNB, sendLogShopByMobile } from '../../../actions/logActions'; import { pushPanel, navigateFromEventPopup } from '../../../actions/panelActions'; -import { startVideoPlayer } from '../../../actions/playActions'; +import { startVideoPlayer, finishVideoPreview } from '../../../actions/playActions'; import MobileSendPopUp from '../../../components/MobileSend/MobileSendPopUp'; import TPopUp from '../../../components/TPopUp/TPopUp'; import { launchMembershipApp } from '../../../lunaSend'; @@ -34,6 +34,11 @@ export default function EventPopUpBanner() { const smsSuccess = useSelector((state) => state.appData.sendSms.retCode); const couponDownloadSuccess = useSelector((state) => state.coupon?.couponDownloadSuccess); + const playerPanelInfo = useSelector((state) => { + const playerPanel = state.panels.panels.find((p) => p.name === panel_names.PLAYER_PANEL); + return playerPanel?.panelInfo; + }); + const timerRef = useRef(); const shopByMobileLogRef = useRef(null); const defaultFocus = useSelector((state) => state.home.defaultFocus); @@ -65,6 +70,9 @@ export default function EventPopUpBanner() { case 'EVT00104': // curation + prize case 'EVT00107': { // curation + billing coupon + if (playerPanelInfo?.modal) { + dispatch(finishVideoPreview()); + } dispatch(setHidePopup()); dispatch( pushPanel({ @@ -198,13 +206,18 @@ export default function EventPopUpBanner() { dispatch(pushPanel({ name: panel_names.TRENDING_NOW_PANEL })); break; case 'EVT00204': - pushPanel({ - name: panel_names.HOT_PICKS_PANEL, - panelInfo: { - curationId: eventPopData.shptmLnkInfo?.lnkCurationId, - patnrId: eventPopData.shptmLnkInfo?.lnkPatnrId, - }, - }); + if (playerPanelInfo?.modal) { + dispatch(finishVideoPreview()); + } + dispatch( + pushPanel({ + name: panel_names.HOT_PICKS_PANEL, + panelInfo: { + curationId: eventPopData.shptmLnkInfo?.lnkCurationId, + patnrId: eventPopData.shptmLnkInfo?.lnkPatnrId, + }, + }) + ); break; case 'EVT00205': dispatch( diff --git a/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/RandomUnit.jsx b/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/RandomUnit.jsx index fa601b32..a493e83c 100644 --- a/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/RandomUnit.jsx +++ b/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/RandomUnit.jsx @@ -486,7 +486,8 @@ export default function RandomUnit({ let action = linkType === 'DSP00507' ? startVideoPlayer : pushPanel; const isNavigatingToDetail = linkInfo.name === panel_names.DETAIL_PANEL; - if (isNavigatingToDetail && playerPanelInfo?.modal !== false) { + const isNavigatingToHotPicks = linkInfo.name === panel_names.HOT_PICKS_PANEL; + if ((isNavigatingToDetail || isNavigatingToHotPicks) && playerPanelInfo?.modal !== false) { finishAndUnlock(); } diff --git a/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/RollingUnit.jsx b/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/RollingUnit.jsx index 49a916b6..f5884281 100644 --- a/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/RollingUnit.jsx +++ b/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/RollingUnit.jsx @@ -37,7 +37,7 @@ import { sendLogTotalRecommend, } from '../../../actions/logActions'; import { pushPanel } from '../../../actions/panelActions'; -import { startVideoPlayer } from '../../../actions/playActions'; +import { startVideoPlayer, finishVideoPreview } from '../../../actions/playActions'; import CustomImage from '../../../components/CustomImage/CustomImage'; import usePriceInfo from '../../../hooks/usePriceInfo'; import { @@ -116,6 +116,11 @@ export default function RollingUnit({ const { userNumber } = useSelector((state) => state.common.appStatus.loginUserData); + const playerPanelInfo = useSelector((state) => { + const playerPanel = state.panels.panels.find((p) => p.name === panel_names.PLAYER_PANEL); + return playerPanel?.panelInfo; + }); + const bannerId = `banner-${bannerData.banrLctnNo}`; const savedIndex = useSelector((state) => state.home.bannerIndices[bannerId]); @@ -408,6 +413,9 @@ export default function RollingUnit({ break; case LINK_TYPES.HOT_PICKS: + if (playerPanelInfo?.modal) { + dispatch(finishVideoPreview()); + } handlePushPanel( panel_names.HOT_PICKS_PANEL, createPanelInfo(currentData)