import { Calendar, Clock, Tv, ExternalLink, Play } from 'lucide-react'; import { decodeHtmlEntities, formatFullDate, formatTime } from './utils'; /** * 예능 일정 섹션 컴포넌트 */ function VarietySection({ schedule }) { const members = schedule.members || []; const isFullGroup = members.length === 5; const hasThumbnail = !!schedule.thumbnailUrl; const hasReplayUrl = !!schedule.replayUrl; // 다시보기 링크가 유튜브인지 확인 const isYoutubeReplay = hasReplayUrl && /youtu\.?be/i.test(schedule.replayUrl); return (
{/* 상단: 썸네일 + 오버레이 */} {hasThumbnail && (
{hasReplayUrl ? (
{schedule.title}
{/* 재생 오버레이 */}
) : (
{schedule.title}
)}
)} {/* 콘텐츠 */}
{/* 방송사 + 날짜 */}
{schedule.broadcaster && ( {schedule.broadcaster} )} {formatFullDate(schedule.date)} {schedule.time && ` · ${formatTime(schedule.time)}`}
{/* 제목 */}

{decodeHtmlEntities(schedule.title)}

{/* 멤버 */} {members.length > 0 && (
{isFullGroup ? ( 프로미스나인 ) : ( members.map((member) => ( {member.name} )) )}
)} {/* 다시보기 버튼 */} {hasReplayUrl && (
{isYoutubeReplay ? : } 다시보기
)}
); } export default VarietySection;