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)