import { useEffect, useState, useRef } from 'react'; import { listPipelines } from '../../../api'; import PipelineCard from './PipelineCard'; import PipelineStartModal from './PipelineStartModal'; export default function PipelineTab({ library, initialTrackId }) { const [pipelines, setPipelines] = useState([]); const [filter, setFilter] = useState('active'); const [modalOpen, setModalOpen] = useState(false); const timer = useRef(null); const load = async () => { try { const r = await listPipelines(filter); setPipelines(r.pipelines || []); } catch { /* swallow */ } }; useEffect(() => { load(); timer.current = setInterval(load, 5000); return () => clearInterval(timer.current); // eslint-disable-next-line react-hooks/exhaustive-deps }, [filter]); useEffect(() => { if (initialTrackId) setModalOpen(true); }, [initialTrackId]); return (
{pipelines.map(p => ( ))} {pipelines.length === 0 &&

진행 중인 파이프라인이 없습니다

}
{modalOpen && ( setModalOpen(false)} onCreated={() => { setModalOpen(false); load(); }} /> )}
); }