[251123] Merge: develop_si base로 develop을 merge함
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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 */}
|
||||
<div>
|
||||
<TQRCode
|
||||
text={QRCodeUrl}
|
||||
@@ -124,6 +149,27 @@ function PlayerOverlayQRCode({ qrCurrentItem, type, modalScale }) {
|
||||
/>
|
||||
<div className={css.text}>{label}</div>
|
||||
</div>
|
||||
{/* =======
|
||||
{isShowQRCode ? (
|
||||
<div>
|
||||
<TQRCode
|
||||
text={QRCodeUrl}
|
||||
width={width}
|
||||
height={height}
|
||||
ariaLabel='QR CODE, "SCAN TO SHOP" go to Shoptime App'
|
||||
/>
|
||||
<div className={css.text}>{label}</div>
|
||||
</div>
|
||||
) : (
|
||||
<div className={css.qrRollingWrap}>
|
||||
<div className={css.innerText}>
|
||||
<h3>{$L("Scan QR")}</h3>
|
||||
<p>{$L("with your phone, Check Product")}</p>
|
||||
<p>{$L("info & Purchase easily")}</p>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
>>>>>>> gitlab/develop */}
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 (
|
||||
<Container
|
||||
className={classNames(
|
||||
@@ -121,7 +124,7 @@ export default function TabContainer({
|
||||
|
||||
{tab === 0 && (
|
||||
<ShopNowContents
|
||||
tabTitle = {tabList}
|
||||
tabTitle={tabList}
|
||||
shopNowInfo={shopNowInfo}
|
||||
playListInfo={playListInfo && playListInfo[selectedIndex]}
|
||||
videoVerticalVisible={videoVerticalVisible}
|
||||
@@ -130,9 +133,25 @@ export default function TabContainer({
|
||||
handleItemFocus={_handleItemFocus}
|
||||
/>
|
||||
)}
|
||||
{panelInfo?.shptmBanrTpNm === "VOD" &&
|
||||
panelInfo?.patnrId === "19" &&
|
||||
tab === 1 && (
|
||||
<FeaturedShowContents
|
||||
tabTitle={tabList}
|
||||
featuredShowsInfos={playListInfo}
|
||||
currentVideoInfo={playListInfo[selectedIndex]}
|
||||
setSelectedIndex={setSelectedIndex}
|
||||
selectedIndex={selectedIndex}
|
||||
videoVerticalVisible={videoVerticalVisible}
|
||||
currentVideoShowId={playListInfo[selectedIndex]?.showId}
|
||||
tabIndex={tab}
|
||||
panelInfo={panelInfo}
|
||||
handleItemFocus={_handleItemFocus}
|
||||
/>
|
||||
)}
|
||||
{panelInfo?.shptmBanrTpNm === "VOD" && tab === 1 && (
|
||||
<FeaturedShowContents
|
||||
tabTitle = {tabList}
|
||||
tabTitle={tabList}
|
||||
featuredShowsInfos={playListInfo}
|
||||
currentVideoInfo={playListInfo[selectedIndex]}
|
||||
setSelectedIndex={setSelectedIndex}
|
||||
@@ -146,7 +165,7 @@ export default function TabContainer({
|
||||
)}
|
||||
{panelInfo?.shptmBanrTpNm === "LIVE" && tab === 1 && liveChannelInfos && (
|
||||
<LiveChannelContents
|
||||
tabTitle = {tabList}
|
||||
tabTitle={tabList}
|
||||
selectedIndex={selectedIndex}
|
||||
setSelectedIndex={setSelectedIndex}
|
||||
videoVerticalVisible={videoVerticalVisible}
|
||||
@@ -156,6 +175,7 @@ export default function TabContainer({
|
||||
handleItemFocus={_handleItemFocus}
|
||||
panelInfo={panelInfo}
|
||||
currentTime={currentTime}
|
||||
isFilteredByPatnr19={isFilteredByPatnr19}
|
||||
/>
|
||||
)}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import { useDispatch } from 'react-redux';
|
||||
|
||||
import Spotlight from '@enact/spotlight';
|
||||
|
||||
// <<<<<<< HEAD
|
||||
import defaultImage from '../../../../../assets/images/img-thumb-empty-144@3x.png';
|
||||
import { updatePanel } from '../../../../actions/panelActions';
|
||||
import TVirtualGridList from '../../../../components/TVirtualGridList/TVirtualGridList';
|
||||
@@ -14,6 +15,23 @@ import ListEmptyContents from '../TabContents/ListEmptyContents/ListEmptyContent
|
||||
import css from './LiveChannelContents.module.less';
|
||||
import { getMainCategoryShowDetail } from '../../../../actions/mainActions';
|
||||
import { sendLogTotalRecommend } from '../../../../actions/logActions';
|
||||
// =======
|
||||
// import defaultImage from "../../../../../assets/images/img-thumb-empty-144@3x.png";
|
||||
// import { updatePanel } from "../../../../actions/panelActions";
|
||||
// import TVirtualGridList from "../../../../components/TVirtualGridList/TVirtualGridList";
|
||||
// import {
|
||||
// LOG_CONTEXT_NAME,
|
||||
// LOG_MENU,
|
||||
// LOG_MESSAGE_ID,
|
||||
// panel_names,
|
||||
// } from "../../../../utils/Config";
|
||||
// import { $L, removeSpecificTags } from "../../../../utils/helperMethods";
|
||||
// import PlayerItemCard, { TYPES } from "../../PlayerItemCard/PlayerItemCard";
|
||||
// import ListEmptyContents from "../TabContents/ListEmptyContents/ListEmptyContents";
|
||||
// import css from "./LiveChannelContents.module.less";
|
||||
// import { getMainCategoryShowDetail } from "../../../../actions/mainActions";
|
||||
// import { sendLogTotalRecommend } from "../../../../actions/logActions";
|
||||
// >>>>>>> gitlab/develop
|
||||
|
||||
export default function FeaturedShowContents({
|
||||
featuredShowsInfos,
|
||||
@@ -44,6 +62,8 @@ export default function FeaturedShowContents({
|
||||
({ index, ...rest }) => {
|
||||
const {
|
||||
thumbnailUrl,
|
||||
logoImgPath,
|
||||
thumbnailImgPath,
|
||||
patncLogoPath,
|
||||
patnrId,
|
||||
showId,
|
||||
@@ -106,8 +126,14 @@ export default function FeaturedShowContents({
|
||||
{...rest}
|
||||
key={prdtId}
|
||||
imageAlt={prdtId}
|
||||
logo={patncLogoPath}
|
||||
imageSource={thumbnailUrl ? thumbnailUrl : defaultImage}
|
||||
logo={logoImgPath ? logoImgPath : patncLogoPath}
|
||||
imageSource={
|
||||
thumbnailUrl
|
||||
? thumbnailUrl
|
||||
: thumbnailImgPath
|
||||
? thumbnailImgPath
|
||||
: defaultImage
|
||||
}
|
||||
productName={showNameDangerouslySetInnerHTML}
|
||||
patnerName={patncNm}
|
||||
onClick={handleItemClick}
|
||||
|
||||
@@ -4,6 +4,7 @@ import { useDispatch } from 'react-redux';
|
||||
|
||||
import Spotlight from '@enact/spotlight';
|
||||
|
||||
// <<<<<<< HEAD
|
||||
import { updatePanel } from '../../../../actions/panelActions';
|
||||
import TVirtualGridList from '../../../../components/TVirtualGridList/TVirtualGridList';
|
||||
import { LOG_CONTEXT_NAME, LOG_MENU, LOG_MESSAGE_ID, panel_names } from '../../../../utils/Config';
|
||||
@@ -13,6 +14,21 @@ import ListEmptyContents from '../TabContents/ListEmptyContents/ListEmptyContent
|
||||
import css from './LiveChannelContents.module.less';
|
||||
import cssV2 from './LiveChannelContents.v2.module.less';
|
||||
import { sendLogTotalRecommend } from '../../../../actions/logActions';
|
||||
// =======
|
||||
// import { updatePanel } from "../../../../actions/panelActions";
|
||||
// import TVirtualGridList from "../../../../components/TVirtualGridList/TVirtualGridList";
|
||||
// import {
|
||||
// LOG_CONTEXT_NAME,
|
||||
// LOG_MENU,
|
||||
// LOG_MESSAGE_ID,
|
||||
// panel_names,
|
||||
// } from "../../../../utils/Config";
|
||||
// import { $L } from "../../../../utils/helperMethods";
|
||||
// import PlayerItemCard, { TYPES } from "../../PlayerItemCard/PlayerItemCard";
|
||||
// import ListEmptyContents from "../TabContents/ListEmptyContents/ListEmptyContents";
|
||||
// import css from "./LiveChannelContents.module.less";
|
||||
// import { sendLogTotalRecommend } from "../../../../actions/logActions";
|
||||
// >>>>>>> gitlab/develop
|
||||
|
||||
export default function LiveChannelContents({
|
||||
liveInfos,
|
||||
@@ -24,13 +40,22 @@ export default function LiveChannelContents({
|
||||
handleItemFocus,
|
||||
tabTitle,
|
||||
panelInfo,
|
||||
// <<<<<<< HEAD
|
||||
direction = 'vertical',
|
||||
version = 1,
|
||||
isFilteredByPatnr19,
|
||||
}) {
|
||||
const dispatch = useDispatch();
|
||||
const isClickBlocked = useRef(false);
|
||||
const blockTimeoutRef = useRef(null);
|
||||
|
||||
// =======
|
||||
// isFilteredByPatnr19,
|
||||
// }) {
|
||||
// const dispatch = useDispatch();
|
||||
// const isClickBlocked = useRef(false);
|
||||
const scrollToRef = useRef(null);
|
||||
// >>>>>>> gitlab/develop
|
||||
const handleFocus = useCallback(
|
||||
() => () => {
|
||||
if (handleItemFocus) {
|
||||
@@ -40,6 +65,18 @@ export default function LiveChannelContents({
|
||||
[handleItemFocus]
|
||||
);
|
||||
|
||||
// cbScrollTo 콜백으로 scrollTo 함수 받기
|
||||
const handleScrollTo = useCallback((scrollToFn) => {
|
||||
scrollToRef.current = scrollToFn;
|
||||
}, []);
|
||||
|
||||
// VOD Channel로 전환될 때 스크롤을 최상단으로 이동
|
||||
useEffect(() => {
|
||||
if (isFilteredByPatnr19 && scrollToRef.current) {
|
||||
scrollToRef.current({ index: 0, animate: false, focus: false });
|
||||
}
|
||||
}, [isFilteredByPatnr19]);
|
||||
|
||||
const renderItem = useCallback(
|
||||
({ index, ...rest }) => {
|
||||
const {
|
||||
@@ -144,7 +181,11 @@ export default function LiveChannelContents({
|
||||
startDt={strtDt}
|
||||
endDt={endDt}
|
||||
currentTime={currentTime}
|
||||
// <<<<<<< HEAD
|
||||
version={version}
|
||||
// =======
|
||||
// currentVideoVisible={currentVideoShowId === liveInfos[index].showId}
|
||||
// >>>>>>> gitlab/develop
|
||||
/>
|
||||
);
|
||||
},
|
||||
@@ -167,6 +208,7 @@ export default function LiveChannelContents({
|
||||
<div className={containerClass}>
|
||||
{liveInfos && liveInfos.length > 0 ? (
|
||||
<TVirtualGridList
|
||||
cbScrollTo={handleScrollTo}
|
||||
dataSize={liveInfos.length}
|
||||
direction={direction}
|
||||
renderItem={renderItem}
|
||||
|
||||
@@ -27,7 +27,6 @@ export default function YouMayLikeContents({
|
||||
const youmaylikeInfos = useSelector((state) => state.main.youmaylikeInfos);
|
||||
|
||||
const gridStyle = useMemo(() => ({ height: `${height}px` }), [height]);
|
||||
|
||||
useEffect(() => {
|
||||
if (shopNowInfo && shopNowInfo.length === 2) {
|
||||
setHeight(scaleH(300));
|
||||
@@ -82,7 +81,12 @@ export default function YouMayLikeContents({
|
||||
showNm: playListInfo?.showNm,
|
||||
showId: playListInfo?.showId,
|
||||
liveFlag: playListInfo?.liveFlag,
|
||||
// <<<<<<< HEAD
|
||||
thumbnailUrl: playListInfo?.thumbnailUrl,
|
||||
// =======
|
||||
catDpTh3: playListInfo?.catDpTh3,
|
||||
catDpTh4: playListInfo?.catDpTh4,
|
||||
// >>>>>>> gitlab/develop
|
||||
patnrId,
|
||||
prdtId,
|
||||
launchedFromPlayer: true,
|
||||
|
||||
Reference in New Issue
Block a user