import { useState } from 'react'; import { cancelPipeline, publishPipeline } from '../../../api'; import PipelineDetailModal from './PipelineDetailModal'; const STEP_LABELS = ['커버','영상','썸네','메타','검토','발행']; function stepIndex(state) { if (!state) return -1; if (state.startsWith('cover')) return 0; if (state.startsWith('video')) return 1; if (state.startsWith('thumb')) return 2; if (state.startsWith('meta')) return 3; if (state.startsWith('ai_review') || state === 'publish_pending') return 4; if (state.startsWith('publish')) return 5; if (state === 'published') return 6; return -1; } export default function PipelineCard({ pipeline, onChanged }) { const [showDetail, setShowDetail] = useState(false); const i = stepIndex(pipeline.state); const title = pipeline.compile_title || pipeline.track_title || `Pipeline #${pipeline.id}`; const handleCardClick = (e) => { if (e.target.closest('button') || e.target.closest('a')) return; setShowDetail(true); }; return ( <>