fix: 완료 카드 공정 표시를 해당 카드의 seq 기준으로 변경

- 이전: 완료 카드는 모든 공정을 ✓로 표시 (전체 완료)
- 이후: 카드의 seq_no 이하만 ✓, 이후는 ○ 표시
- 예: seq1 완료 → ✓○○ (1/3 완료), seq3 완료 → ✓✓✓ (전체 완료)
This commit is contained in:
SeongHyun Kim
2026-04-06 11:53:55 +09:00
parent 78f959c091
commit 32a372a9b3

View File

@@ -307,25 +307,37 @@ function CompressedProcessSteps({
const currentIdx = sorted.findIndex((p) => p.seq_no === currentSeqNo);
if (currentIdx < 0) return null;
// For completed status: show all as checkmarks
// For completed status: show progress up to current card's seq position
if (status === "completed") {
const currentSeqNum = parseInt(currentSeqNo, 10);
const allDone = currentIdx === sorted.length - 1; // 마지막 공정이면 전체 완료
return (
<div
className="flex items-center justify-center gap-0.5 mb-3 py-2 px-3 bg-green-50 rounded-xl cursor-pointer hover:bg-green-100 transition"
onClick={onClick}
>
{sorted.map((proc, idx) => (
<React.Fragment key={proc.id}>
{idx > 0 && <span className="w-3 h-0.5 bg-green-400 shrink-0" />}
<span
className="rounded-full bg-green-500 text-white flex items-center justify-center shrink-0 text-[9px] font-bold"
style={{ width: idx === currentIdx ? 28 : 24, height: idx === currentIdx ? 28 : 24, fontSize: idx === currentIdx ? 10 : 9 }}
>
&#10003;
</span>
</React.Fragment>
))}
<span className="text-[10px] text-green-600 font-bold ml-2"> </span>
{sorted.map((proc, idx) => {
const seqNum = parseInt(proc.seq_no, 10);
const isDone = seqNum <= currentSeqNum; // 현재 카드 seq 이하만 완료
return (
<React.Fragment key={proc.id}>
{idx > 0 && <span className={`w-3 h-0.5 ${isDone ? "bg-green-400" : "bg-gray-300"} shrink-0`} />}
<span
className={`rounded-full flex items-center justify-center shrink-0 text-[9px] font-bold ${
isDone
? "bg-green-500 text-white"
: "bg-gray-200 text-gray-400"
}`}
style={{ width: idx === currentIdx ? 28 : 24, height: idx === currentIdx ? 28 : 24, fontSize: idx === currentIdx ? 10 : 9 }}
>
{isDone ? "\u2713" : idx + 1}
</span>
</React.Fragment>
);
})}
<span className="text-[10px] text-green-600 font-bold ml-2">
{allDone ? "전체 완료" : `${currentIdx + 1}/${sorted.length} 완료`}
</span>
</div>
);
}