import React, { useCallback, useEffect, useMemo, useRef } from 'react';
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';
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';
// =======
// 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,
videoVerticalVisible,
currentVideoInfo,
currentVideoShowId,
setSelectedIndex,
selectedIndex,
tabIndex,
handleItemFocus,
tabTitle,
panelInfo,
}) {
const dispatch = useDispatch();
const isClickBlocked = useRef(false);
const blockTimeoutRef = useRef(null);
const handleFocus = useCallback(
() => () => {
if (handleItemFocus) {
handleItemFocus(LOG_MENU.FULL_FEATURED_SHOWS);
}
},
[handleItemFocus]
);
const renderItem = useCallback(
({ index, ...rest }) => {
const {
thumbnailUrl,
logoImgPath,
thumbnailImgPath,
patncLogoPath,
patnrId,
showId,
prdtId,
patncNm,
showNm,
catNm,
lgCatCd,
} = featuredShowsInfos[index];
const handleItemClick = () => {
const params = {
tabTitle: tabTitle[tabIndex],
showId: showId,
showTitle: showNm,
showType: panelInfo?.shptmBanrTpNm,
category: catNm,
partner: patncNm,
contextName: LOG_CONTEXT_NAME.SHOW,
messageId: LOG_MESSAGE_ID.CONTENTCLICK,
};
dispatch(sendLogTotalRecommend(params));
//중복클릭방지
if (isClickBlocked.current) {
return;
}
isClickBlocked.current = true;
// 이전 타이머가 있으면 정리
if (blockTimeoutRef.current) {
clearTimeout(blockTimeoutRef.current);
}
blockTimeoutRef.current = setTimeout(() => {
isClickBlocked.current = false;
blockTimeoutRef.current = null;
}, 600);
if (currentVideoShowId && currentVideoShowId === showId) {
return;
}
setSelectedIndex(index);
dispatch(
getMainCategoryShowDetail({
patnrId: patnrId,
showId: showId,
})
);
};
const showNameDangerouslySetInnerHTML = () => {
const sanitizedString = removeSpecificTags(showNm);
return { __html: sanitizedString };
};
return (