From 5cad4ed7fda58c6648e0bb1bbe5dd5f720211a9e Mon Sep 17 00:00:00 2001 From: SeongHyun Kim Date: Thu, 26 Mar 2026 17:43:15 +0900 Subject: [PATCH] =?UTF-8?q?feat(pop-work-detail):=20=EB=AA=A8=EB=93=A0=20?= =?UTF-8?q?=EA=B7=B8=EB=A3=B9=20=EC=9E=91=EC=97=85=EC=99=84=EB=A3=8C=20?= =?UTF-8?q?=EB=B2=84=ED=8A=BC=20=ED=95=AD=EC=83=81=20=ED=91=9C=EC=8B=9C=20?= =?UTF-8?q?+=20=ED=83=80=EC=9D=B4=EB=A8=B8=20=EC=99=84=EB=A3=8C=20?= =?UTF-8?q?=EB=B2=84=ED=8A=BC=20=EC=B6=94=EA=B0=80=20-=20GroupCompleteButt?= =?UTF-8?q?on:=20!isGroupCompleted=20=EC=A1=B0=EA=B1=B4=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0=20=E2=86=92=20=EB=AA=A8=EB=93=A0=20=EA=B7=B8=EB=A3=B9?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=ED=95=AD=EC=83=81=20=ED=91=9C=EC=8B=9C=20?= =?UTF-8?q?=20=20-=20=EC=9D=B4=EB=AF=B8=20=EC=99=84=EB=A3=8C=EB=90=9C=20?= =?UTF-8?q?=EA=B7=B8=EB=A3=B9=EC=97=90=EC=84=9C=EB=8A=94=20"=EC=9E=91?= =?UTF-8?q?=EC=97=85=EC=99=84=EB=A3=8C=EB=90=A8"=20=EC=99=84=EB=A3=8C=20?= =?UTF-8?q?=ED=91=9C=EC=8B=9C=20=EB=A0=8C=EB=8D=94=EB=A7=81=20=20=20-=20is?= =?UTF-8?q?GroupCompleted=20prop=20=EC=B6=94=EA=B0=80=20-=20GroupTimerHead?= =?UTF-8?q?er:=20isGroupStarted=20=EC=83=81=ED=83=9C(=EC=A7=84=ED=96=89=20?= =?UTF-8?q?=EC=A4=91/=EC=9D=BC=EC=8B=9C=EC=A0=95=EC=A7=80)=EC=97=90=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C=20=EB=B2=84=ED=8A=BC=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=20=20-=20GlossyButton=20green=20variant,=20onTimerAction("comp?= =?UTF-8?q?lete")=20=ED=98=B8=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PopWorkDetailComponent.tsx | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/frontend/lib/registry/pop-components/pop-work-detail/PopWorkDetailComponent.tsx b/frontend/lib/registry/pop-components/pop-work-detail/PopWorkDetailComponent.tsx index 350d1c26..7d5e1ab8 100644 --- a/frontend/lib/registry/pop-components/pop-work-detail/PopWorkDetailComponent.tsx +++ b/frontend/lib/registry/pop-components/pop-work-detail/PopWorkDetailComponent.tsx @@ -1253,12 +1253,13 @@ export function PopWorkDetailComponent({ ))} {/* 각 그룹 하단: 작업완료 버튼 */} - {!isProcessCompleted && selectedGroup && !isGroupCompleted && ( + {!isProcessCompleted && selectedGroup && (
{ await handleGroupTimerAction("complete"); // 완료 후 다음 그룹으로 자동 이동 @@ -2274,6 +2275,11 @@ function GroupTimerHeader({ 재개 )} + {isGroupStarted && ( + onTimerAction("complete")} style={{ minHeight: 48, minWidth: 120, fontSize: 16 }}> + 완료 + + )}
)} @@ -2427,12 +2433,14 @@ function GroupCompleteButton({ group, currentItems, isGroupStarted, + isGroupCompleted, onComplete, onNavigateNext, }: { group: WorkGroup; currentItems: WorkResultRow[]; isGroupStarted: boolean; + isGroupCompleted: boolean; onComplete: () => void; onNavigateNext: () => void; }) { @@ -2442,6 +2450,19 @@ function GroupCompleteButton({ const allDone = currentItems.every((r) => r.status === "completed"); const isDisabled = !isGroupStarted || (!allRequiredDone); + // 이미 완료된 그룹: 완료 표시만 + if (isGroupCompleted) { + return ( +
+ + 작업완료됨 +
+ ); + } + if (confirmOpen) { return (