diff --git a/com.twin.app.shoptime/src/views/MyPagePanel/MyPageSub/RecentlyViewed/RecentlyViewedContents.jsx b/com.twin.app.shoptime/src/views/MyPagePanel/MyPageSub/RecentlyViewed/RecentlyViewedContents.jsx
index ffe25236..aa41ecd1 100644
--- a/com.twin.app.shoptime/src/views/MyPagePanel/MyPageSub/RecentlyViewed/RecentlyViewedContents.jsx
+++ b/com.twin.app.shoptime/src/views/MyPagePanel/MyPageSub/RecentlyViewed/RecentlyViewedContents.jsx
@@ -64,38 +64,42 @@ export default function RecentlyViewedContents({
}, [mainContainerId, recentDataInfoItem, scrollLeft]);
const handleItemClick = useCallback(
- (showId, showNm, patnrId, lgCatCd, prdtId, prdtNm, patncNm) => () => {
- const params = {
- menu: "Recently Viewed",
- partner: patncNm,
- contentId: showId,
- contentTitle: showNm,
- productId: prdtId,
- productTitle: prdtNm,
- contextName: LOG_CONTEXT_NAME.MYPAGE,
- messageId: LOG_MESSAGE_ID.MYPAGE_CLICK,
- };
- dispatch(sendLogTotalRecommend(params));
+ (showId, showNm, patnrId, lgCatCd, prdtId, prdtNm, patncNm, brndNm) =>
+ () => {
+ const params = {
+ menu: "Recently Viewed",
+ partner: patncNm,
+ contentId: showId,
+ contentTitle: showNm,
+ productId: prdtId,
+ productTitle: prdtNm,
+ showId: showId,
+ showTitle: showNm,
+ brand: brndNm,
+ contextName: LOG_CONTEXT_NAME.MYPAGE,
+ messageId: LOG_MESSAGE_ID.MYPAGE_CLICK,
+ };
+ dispatch(sendLogTotalRecommend(params));
- if (showId) {
- dispatch(
- startVideoPlayer({
- showId,
- patnrId,
- shptmBanrTpNm: "VOD",
- lgCatCd,
- modal: false,
- })
- );
- } else {
- dispatch(
- pushPanel({
- name: panel_names.DETAIL_PANEL,
- panelInfo: { patnrId, prdtId },
- })
- );
- }
- },
+ if (showId) {
+ dispatch(
+ startVideoPlayer({
+ showId,
+ patnrId,
+ shptmBanrTpNm: "VOD",
+ lgCatCd,
+ modal: false,
+ })
+ );
+ } else {
+ dispatch(
+ pushPanel({
+ name: panel_names.DETAIL_PANEL,
+ panelInfo: { patnrId, prdtId },
+ })
+ );
+ }
+ },
[recentDataInfoItem]
);
const _handleItemToggle = useCallback(
diff --git a/com.twin.app.shoptime/src/views/OnSalePanel/OnSaleContents/OnSaleContents.jsx b/com.twin.app.shoptime/src/views/OnSalePanel/OnSaleContents/OnSaleContents.jsx
index adb97173..405b92d2 100644
--- a/com.twin.app.shoptime/src/views/OnSalePanel/OnSaleContents/OnSaleContents.jsx
+++ b/com.twin.app.shoptime/src/views/OnSalePanel/OnSaleContents/OnSaleContents.jsx
@@ -39,7 +39,6 @@ export default memo(function OnSaleContents({
shelfId: selectedLgCatCd,
shelfTitle: saleNm,
};
- console.log("###shelfListShown", params);
dispatch(sendLogTotalRecommend(params));
}
}, [
diff --git a/com.twin.app.shoptime/src/views/OnSalePanel/OnSaleNav/OnSaleNav.jsx b/com.twin.app.shoptime/src/views/OnSalePanel/OnSaleNav/OnSaleNav.jsx
index d0f23d6e..e78f955a 100644
--- a/com.twin.app.shoptime/src/views/OnSalePanel/OnSaleNav/OnSaleNav.jsx
+++ b/com.twin.app.shoptime/src/views/OnSalePanel/OnSaleNav/OnSaleNav.jsx
@@ -76,9 +76,9 @@ export default function OnSaleNav({
const containerId = "on-sale-nav";
setContainerLastFocusedElement(node, [containerId]);
}
- setTimeout(() => {
- Spotlight.focus(node);
- }, 100);
+ // setTimeout(() => {
+ // Spotlight.focus(node);
+ // }, 100);
}
}, [panelInfoLgCatCd]);
diff --git a/com.twin.app.shoptime/src/views/OnSalePanel/OnSaleNav/OnSaleNavItem/OnSaleNavItem.jsx b/com.twin.app.shoptime/src/views/OnSalePanel/OnSaleNav/OnSaleNavItem/OnSaleNavItem.jsx
index 296a078b..2e527a6a 100644
--- a/com.twin.app.shoptime/src/views/OnSalePanel/OnSaleNav/OnSaleNavItem/OnSaleNavItem.jsx
+++ b/com.twin.app.shoptime/src/views/OnSalePanel/OnSaleNav/OnSaleNavItem/OnSaleNavItem.jsx
@@ -1,7 +1,7 @@
import React, { memo, useCallback, useEffect } from "react";
import classNames from "classnames";
-import { useDispatch } from "react-redux";
+import { connect, useDispatch } from "react-redux";
import Spottable from "@enact/spotlight/Spottable";
import { setContainerLastFocusedElement } from "@enact/spotlight/src/container";
@@ -32,8 +32,8 @@ export default memo(function OnSaleNavItem({
const selected = selectedLgCatCd
? selectedLgCatCd === lgCatCd && css.selected
: panelInfoLgCatCd
- ? panelInfoLgCatCd === lgCatCd && css.selected
- : itemIndex === 0;
+ ? panelInfoLgCatCd === lgCatCd && css.selected
+ : itemIndex === 0;
const selectedText = selected === true ? "Selected, " : "";
@@ -77,8 +77,8 @@ export default memo(function OnSaleNavItem({
selectedLgCatCd
? selectedLgCatCd === lgCatCd && css.selected
: panelInfoLgCatCd
- ? panelInfoLgCatCd === lgCatCd && css.selected
- : itemIndex === 0 && css.selected
+ ? panelInfoLgCatCd === lgCatCd && css.selected
+ : itemIndex === 0 && css.selected
)}
onClick={handleClick}
id={"spotlightId-" + lgCatCd}
diff --git a/com.twin.app.shoptime/src/views/OnSalePanel/OnSalePanel.jsx b/com.twin.app.shoptime/src/views/OnSalePanel/OnSalePanel.jsx
index 0e151653..6d27bef2 100644
--- a/com.twin.app.shoptime/src/views/OnSalePanel/OnSalePanel.jsx
+++ b/com.twin.app.shoptime/src/views/OnSalePanel/OnSalePanel.jsx
@@ -57,8 +57,8 @@ export default function OnSalePanel({ panelInfo, spotlightId }) {
const enteredThroughEventPopup = Object.keys(panelInfo).length === 1;
const enteredThroughGNB = Object.keys(panelInfo).length === 0;
- const previousPanelIsHome = Object.keys(panelInfo).length === 3;
- const previousPanelIsDetail = Object.keys(panelInfo).length > 4;
+ const previousPanelIsHome = panelInfo?.nowShelf !== undefined;
+ const previousPanelIsDetail = panelInfo?.noResetFlag === true;
const cbChangePageRef = useRef(null);
const focusedContainerIdRef = useRef(0);
@@ -132,7 +132,6 @@ export default function OnSalePanel({ panelInfo, spotlightId }) {
useEffect(() => {
if (categories && saleInfos && Object.keys(saleInfos).length > 0) {
const prdtId = saleInfos[0]?.saleProductInfos[0]?.prdtId;
-
if (prdtId) {
setFirstFocusableTarget("spotlightId-" + removeDotAndColon(prdtId));
setIsReadyForInitialFocusTarget(true);
@@ -149,9 +148,8 @@ export default function OnSalePanel({ panelInfo, spotlightId }) {
}
if (previousPanelIsHome) {
- targetId = panelInfo?.linkTpCd
- ? "spotlightId-" + panelInfo?.lgCatCd
- : "spotlightId-" + panelInfo?.prdtId;
+ // 홈에서 온세일 아이템을 선택한 경우 해당 카테고리의 nav 아이템에 포커스
+ targetId = "spotlightId-" + panelInfo?.lgCatCd;
}
if (enteredThroughEventPopup) {
@@ -180,8 +178,6 @@ export default function OnSalePanel({ panelInfo, spotlightId }) {
isInitialFocusOccurred,
isReadyForInitialFocusTarget,
panelInfo?.lgCatCd,
- panelInfo?.linkTpCd,
- panelInfo?.prdtId,
panelInfo?.targetId,
previousPanelIsDetail,
previousPanelIsHome,
@@ -300,7 +296,6 @@ export default function OnSalePanel({ panelInfo, spotlightId }) {
cbChangePageRef.current(0);
}
}, []);
-
const handleShelfFocus = useCallback(
(shelfOrder) => {
// 현재 포커스된 shelf와 다른 shelf에 포커스될 때만 true 반환
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 6621ccbe..a9fab64d 100644
--- a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerOverlay/PlayerOverlayContents.jsx
+++ b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerOverlay/PlayerOverlayContents.jsx
@@ -69,8 +69,15 @@ function PlayerOverlayContents({
}, [dispatch, captionEnable, setIsSubtitleActive]);
const patncLogoPath = useMemo(() => {
+// <<<<<<< HEAD
let logo = playListInfo[selectedIndex]?.patncLogoPath;
if (type === 'MEDIA') {
+// =======
+// let logo = playListInfo[selectedIndex]?.patncLogoPath
+// ? playListInfo[selectedIndex]?.patncLogoPath
+// : playListInfo[selectedIndex]?.logoImgPath;
+// if (type === "MEDIA") {
+// >>>>>>> gitlab/develop
logo = panelInfo?.patncLogoPath;
}
diff --git a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerOverlay/PlayerOverlayQRCode.jsx b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerOverlay/PlayerOverlayQRCode.jsx
index e12a36ff..c308010a 100644
--- a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerOverlay/PlayerOverlayQRCode.jsx
+++ b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerOverlay/PlayerOverlayQRCode.jsx
@@ -1,16 +1,18 @@
-import React, { useMemo } from 'react';
+import React, { useEffect, useMemo, useRef, useState } from 'react';
import classNames from 'classnames';
import { useSelector } from 'react-redux';
import TQRCode from '../../../components/TQRCode/TQRCode';
import css from './PlayerOverlayQRCode.module.less';
-import { getQRCodeUrl, scaleH, scaleW } from '../../../utils/helperMethods';
+import { getQRCodeUrl, scaleH, scaleW, $L } from '../../../utils/helperMethods';
function PlayerOverlayQRCode({ qrCurrentItem, type, modalScale }) {
const { cntry_cd } = useSelector((state) => state.common.httpHeader);
const deviceInfo = useSelector((state) => state.device.deviceInfo);
+ const [isShowQRCode, setIsShowQRCode] = useState(true);
+ const timerRef = useRef(null);
const serverHOST = useSelector((state) => state.common.appStatus.serverHOST);
const serverType = useSelector((state) => state.localSettings.serverType);
const { entryMenu, nowMenu } = useSelector((state) => state.common.menu);
@@ -102,6 +104,28 @@ function PlayerOverlayQRCode({ qrCurrentItem, type, modalScale }) {
return qrCurrentItem?.qrcodeUrl;
}, [detailUrl, qrCurrentItem, type]);
+ useEffect(() => {
+ const toggleQRCode = () => {
+ if (isShowQRCode) {
+ timerRef.current = setTimeout(() => {
+ setIsShowQRCode(false);
+ }, 10000);
+ } else {
+ timerRef.current = setTimeout(() => {
+ setIsShowQRCode(true);
+ }, 5000);
+ }
+ };
+
+ toggleQRCode();
+
+ return () => {
+ if (timerRef.current) {
+ clearTimeout(timerRef.current);
+ }
+ };
+ }, [isShowQRCode]);
+
return (
<>
{innerStylePosition && QRCodeUrl && (
@@ -115,6 +139,7 @@ function PlayerOverlayQRCode({ qrCurrentItem, type, modalScale }) {
)}
style={innerStylePosition}
>
+{/* <<<<<<< HEAD */}
+{/* =======
+ {isShowQRCode ? (
+
+ ) : (
+
+
+
{$L("Scan QR")}
+
{$L("with your phone, Check Product")}
+
{$L("info & Purchase easily")}
+
+
+ )}
+>>>>>>> gitlab/develop */}
)}
>
diff --git a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerOverlay/PlayerOverlayQRCode.module.less b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerOverlay/PlayerOverlayQRCode.module.less
index 1d537521..f4b895ab 100644
--- a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerOverlay/PlayerOverlayQRCode.module.less
+++ b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerOverlay/PlayerOverlayQRCode.module.less
@@ -68,4 +68,84 @@
}
}
}
+
+ .qrRollingWrap {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ align-items: center;
+ text-align: center;
+ width: 100%;
+ height: 100%;
+ background: @COLOR_WHITE;
+
+ .innerText {
+ width: 100%;
+ padding: 0 10px;
+
+ h3 {
+ word-break: break-word;
+ font-size: 24px;
+ font-weight: bold;
+ color: @PRIMARY_COLOR_RED;
+
+ & + p {
+ margin-top: 10px;
+ }
+ }
+
+ p {
+ font-size: 16px;
+ font-weight: bold;
+ line-height: 1.2;
+ color: @COLOR_GRAY05;
+ word-break: keep-all;
+ }
+ }
+ }
+
+ // 국가별 롤링 텍스트 크기 조정 (폰트 사이즈만)
+ &.us .qrRollingWrap {
+ .innerText {
+ h3 {
+ font-size: 27px;
+ }
+ p {
+ font-size: 18px;
+ }
+ }
+ }
+
+ &.ru .qrRollingWrap {
+ .innerText {
+ h3 {
+ font-size: 22px;
+ }
+ p {
+ font-size: 15px;
+ }
+ }
+ }
+
+ &.de .qrRollingWrap {
+ .innerText {
+ h3 {
+ font-size: 26px;
+ }
+ p {
+ font-size: 17px;
+ }
+ }
+ }
+
+ &.gb .qrRollingWrap {
+ .innerText {
+ h3 {
+ font-size: 23px;
+ }
+ p {
+ font-size: 16px;
+ }
+ }
+ }
}
diff --git a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerPanel.jsx b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerPanel.jsx
index 534cc4f7..05d765f8 100644
--- a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerPanel.jsx
+++ b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerPanel.jsx
@@ -28,9 +28,16 @@ import {
getMainCategoryShowDetail,
getMainLiveShow,
getMainLiveShowNowProduct,
+// <<<<<<< HEAD
} from '../../actions/mainActions';
import * as PanelActions from '../../actions/panelActions';
import { updatePanel } from '../../actions/panelActions';
+// =======
+// } from "../../actions/mainActions";
+// import { getBrandLiveChannelInfo } from "../../actions/brandActions";
+// import * as PanelActions from "../../actions/panelActions";
+// import { updatePanel } from "../../actions/panelActions";
+// >>>>>>> gitlab/develop
import {
CLEAR_PLAYER_INFO,
getChatLog,
diff --git a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/TabContainer.jsx b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/TabContainer.jsx
index e86a9add..6d083d2a 100644
--- a/com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/TabContainer.jsx
+++ b/com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/TabContainer.jsx
@@ -33,16 +33,20 @@ export default function TabContainer({
prevChannelIndex,
currentTime,
spotlightId,
+ isFilteredByPatnr19,
}) {
const [tab, setTab] = useState(0);
const tabList = [
$L("SHOP NOW"),
panelInfo?.shptmBanrTpNm === "LIVE"
- ? $L("LIVE CHANNEL")
+ ? isFilteredByPatnr19
+ ? $L("VOD CHANNEL")
+ : $L("LIVE CHANNEL")
: $L("FEATURED SHOWS"),
];
+ // console.log("###liveChannelInfos", liveChannelInfos[selectedIndex]);
const handleItemClick = useCallback(
({ index }) => {
if (index === tab) return;
@@ -101,7 +105,6 @@ export default function TabContainer({
},
[videoVerticalVisible]
);
-
return (