[251120] fix: Before Launche HotPicksPanel remove PlayerPanel

🕐 커밋 시간: 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

🔧 주요 변경 내용:
  • 소규모 기능 개선
This commit is contained in:
2025-11-20 15:12:55 +09:00
parent ebce68d059
commit 59ac371e63
3 changed files with 32 additions and 10 deletions

View File

@@ -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(

View File

@@ -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();
}

View File

@@ -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)