Files
shoptime/com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/v2/LiveChannelNext.jsx
optrader bbcc4eddd1 [251120] fix: PlayerPanel tabIndex=2 focus done
🕐 커밋 시간: 2025. 11. 20. 16:17:48

📊 변경 통계:
  • 총 파일: 3개
  • 추가: +77줄
  • 삭제: -20줄

📝 수정된 파일:
  ~ com.twin.app.shoptime/src/views/PlayerPanel/PlayerOverlay/PlayerOverlayContents.jsx
  ~ com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/v2/LiveChannelNext.jsx
  ~ com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/v2/ShopNowButton.jsx

🔧 주요 변경 내용:
  • 소규모 기능 개선
2025-11-20 16:17:49 +09:00

76 lines
2.3 KiB
JavaScript

import React from 'react';
import Spotlight from '@enact/spotlight';
import Spottable from '@enact/spotlight/Spottable';
import { Marquee, MarqueeController } from '@enact/ui/Marquee';
import { compose } from 'ramda/src/compose';
import icon_arrow_dwon from '../../../../../assets/images/player/icon_tabcontainer_arrow_down.png';
import CustomImage from '../../../../components/CustomImage/CustomImage';
import { SpotlightIds } from '../../../../utils/SpotlightIds';
import css from './LiveChannelNext.module.less';
const SpottableDiv = Spottable('div');
export default function LiveChannelNext({
channelLogo,
channelName = 'ShopLC',
programName = 'Sandal Black...',
backgroundColor = 'linear-gradient(180deg, #284998 0%, #06B0EE 100%)',
onClick,
spotlightId = 'live-channel-next-button',
}) {
const handleSpotlightUp = (e) => {
e.stopPropagation();
e.preventDefault();
Spotlight.focus(SpotlightIds.PLAYER_BACK_BUTTON);
};
const handleSpotlightDown = (e) => {
e.stopPropagation();
e.preventDefault();
Spotlight.focus('player-subtitlebutton');
};
const handleSpotlightRight = (e) => {
e.stopPropagation();
e.preventDefault();
Spotlight.focus('player-subtitlebutton');
};
return (
<div className={css.container}>
<SpottableDiv
className={css.liveChannelButton}
onClick={onClick}
spotlightId={spotlightId}
onSpotlightUp={handleSpotlightUp}
onSpotlightDown={handleSpotlightDown}
onSpotlightRight={handleSpotlightRight}
>
<div className={css.logoWrapper}>
<div className={css.logoBackground} style={{ background: backgroundColor }}>
{channelLogo ? (
<CustomImage src={channelLogo} alt={channelName} className={css.logoImage} />
) : (
<div className={css.logoPlaceholder} />
)}
</div>
</div>
<Marquee className={css.channelName} marqueeOn="render">
{channelName}
</Marquee>
<Marquee className={css.programName} marqueeOn="render">
{programName}
</Marquee>
{/* <div className={css.iconWrapper}>
<div className={css.playIcon} />
</div> */}
<div className={css.arrowIcon}>
<img src={icon_arrow_dwon} alt="arrow down" />
</div>
</SpottableDiv>
</div>
);
}