From 680da9b323db8b8d7cf27c674ab0016ec87bfe81 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Tue, 4 Nov 2025 07:48:00 +0000 Subject: (임수민) 구매 점검 테스트 요청사항 수정 (11/02) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../table/general-evaluation-form-sheet.tsx | 70 +++++++++++++++++----- 1 file changed, 54 insertions(+), 16 deletions(-) (limited to 'lib/vendor-evaluation-submit/table') diff --git a/lib/vendor-evaluation-submit/table/general-evaluation-form-sheet.tsx b/lib/vendor-evaluation-submit/table/general-evaluation-form-sheet.tsx index 685530e6..45eea880 100644 --- a/lib/vendor-evaluation-submit/table/general-evaluation-form-sheet.tsx +++ b/lib/vendor-evaluation-submit/table/general-evaluation-form-sheet.tsx @@ -330,6 +330,19 @@ export function GeneralEvaluationFormSheet({ const progress = getProgress() + // 응답 ID -> 전역 인덱스 매핑 (카테고리 그룹/정렬과 무관하게 안정적인 인덱스 사용) + const responseIndexById = React.useMemo(() => { + const map: Record = {} + if (formData) { + formData.evaluations.forEach((ev, idx) => { + if (ev.response?.id) { + map[ev.response.id] = idx + } + }) + } + return map + }, [formData]) + if (isLoading) { return ( @@ -430,8 +443,11 @@ export function GeneralEvaluationFormSheet({ type="button" variant="outline" size="sm" - onClick={() => handleSaveResponse(index)} - disabled={!item.response?.id} + onClick={() => { + const gi = item.response?.id ? responseIndexById[item.response.id] : undefined + return gi !== undefined ? handleSaveResponse(gi) : undefined + }} + disabled={!item.response?.id || (item.response?.id ? responseIndexById[item.response.id] === undefined : true)} > 저장 @@ -453,23 +469,41 @@ export function GeneralEvaluationFormSheet({ {/* 📝 응답 텍스트만 (점수 입력 제거) */} - ( - - 응답 내용 * - + {(() => { + const gi = item.response?.id ? responseIndexById[item.response.id] : undefined + if (gi === undefined) { + return ( +
+ 응답 내용 *