From d472b771e1c15ac261bb6dd19bfa73bec526ac60 Mon Sep 17 00:00:00 2001 From: kent Date: Fri, 9 Jan 2026 17:06:04 +0900 Subject: [PATCH] =?UTF-8?q?fix(approval):=20=EA=B2=B0=EC=9E=AC=EC=84=A0/?= =?UTF-8?q?=EC=B0=B8=EC=A1=B0=20Select=20=EA=B0=92=20=EB=B3=80=EA=B2=BD=20?= =?UTF-8?q?=EB=B6=88=EA=B0=80=20=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SelectValue children 조건부 렌더링 → placeholder prop으로 이동 - Radix UI Select 상태 관리 문제 해결 - @/lib/api barrel export 추가 (빌드 오류 해결) 수정 파일: - ApprovalLineSection.tsx: SelectValue 수정 - ReferenceSection.tsx: SelectValue 수정 - src/lib/api/index.ts: 신규 생성 빌드 검증: npm run build 성공 (349 페이지) --- CURRENT_WORKS.md | 57 ++++++++++++++++++- .../DocumentCreate/ApprovalLineSection.tsx | 12 ++-- .../DocumentCreate/ReferenceSection.tsx | 12 ++-- src/lib/api/index.ts | 16 ++++++ 4 files changed, 85 insertions(+), 12 deletions(-) create mode 100644 src/lib/api/index.ts diff --git a/CURRENT_WORKS.md b/CURRENT_WORKS.md index dbfd9227..69cc4b88 100644 --- a/CURRENT_WORKS.md +++ b/CURRENT_WORKS.md @@ -1,5 +1,59 @@ # SAM React 작업 현황 +## 2026-01-09 (목) - TODO-1 결재선/참조 Select 버그 수정 + +### 작업 목표 +- 결재선/참조 Select 컴포넌트에서 선택한 직원 정보가 표시되지 않는 버그 수정 +- @/lib/api barrel export 추가 (빌드 오류 해결) + +### 수정된 파일 +| 파일명 | 설명 | +|--------|------| +| `src/components/approval/DocumentCreate/ApprovalLineSection.tsx` | SelectValue 버그 수정 | +| `src/components/approval/DocumentCreate/ReferenceSection.tsx` | SelectValue 버그 수정 | +| `src/lib/api/index.ts` | 신규 생성 - barrel export | + +### 주요 변경 내용 + +#### 1. SelectValue 버그 수정 +**문제**: Radix UI SelectValue의 children prop에 조건부 렌더링 사용 시 Select 상태 관리가 깨짐 + +**해결**: children 제거, placeholder prop으로 이동 +```tsx +// Before (버그) + + {person.name ? `${person.department} / ${person.position} / ${person.name}` : null} + + +// After (수정) + +``` + +#### 2. @/lib/api barrel export +Phase 2.3 자재관리 작업에서 사용하는 import 경로 지원: +```typescript +// src/lib/api/index.ts +export { ApiClient, withTokenRefresh } from './client'; +export { serverFetch } from './fetch-wrapper'; +export { AUTH_CONFIG } from './auth/auth-config'; + +export const apiClient = new ApiClient({ + mode: 'api-key', + apiKey: process.env.API_KEY, +}); +``` + +### 빌드 검증 +✅ Next.js 빌드 성공 (349 페이지) + +--- + ## 2026-01-09 (목) - Phase 2.3 자재관리(품목관리) API 연동 ### 작업 목표 @@ -535,7 +589,6 @@ useEffect(() => { ### 다음 작업 - Phase D~L 진행 (계획 문서 참조) -- TODO-1: 결재선/참조 Select 변경 불가 문제 해결 ← 2025-01-09 수정 완료 -- 채권현황 console.log 제거 ← 2025-01-09 정리 완료 +- ~~TODO-1: 결재선/참조 Select 변경 불가 문제~~ ✅ 2026-01-09 수정 완료 --- diff --git a/src/components/approval/DocumentCreate/ApprovalLineSection.tsx b/src/components/approval/DocumentCreate/ApprovalLineSection.tsx index d21b6c48..37a86338 100644 --- a/src/components/approval/DocumentCreate/ApprovalLineSection.tsx +++ b/src/components/approval/DocumentCreate/ApprovalLineSection.tsx @@ -75,11 +75,13 @@ export function ApprovalLineSection({ data, onChange }: ApprovalLineSectionProps onValueChange={(value) => handleChange(index, value)} > - - {person.name && !person.id.startsWith('temp-') - ? `${person.department || ''} / ${person.position || ''} / ${person.name}` - : null} - + {employees.map((employee) => ( diff --git a/src/components/approval/DocumentCreate/ReferenceSection.tsx b/src/components/approval/DocumentCreate/ReferenceSection.tsx index daeeb54d..59cbdf15 100644 --- a/src/components/approval/DocumentCreate/ReferenceSection.tsx +++ b/src/components/approval/DocumentCreate/ReferenceSection.tsx @@ -75,11 +75,13 @@ export function ReferenceSection({ data, onChange }: ReferenceSectionProps) { onValueChange={(value) => handleChange(index, value)} > - - {person.name && !person.id.startsWith('temp-') - ? `${person.department || ''} / ${person.position || ''} / ${person.name}` - : null} - + {employees.map((employee) => ( diff --git a/src/lib/api/index.ts b/src/lib/api/index.ts new file mode 100644 index 00000000..d751411e --- /dev/null +++ b/src/lib/api/index.ts @@ -0,0 +1,16 @@ +// lib/api/index.ts +// API 클라이언트 배럴 익스포트 + +export { ApiClient, withTokenRefresh } from './client'; +export { serverFetch } from './fetch-wrapper'; +export { AUTH_CONFIG } from './auth/auth-config'; + +// Server-side API 클라이언트 인스턴스 +// 서버 액션에서 사용 +import { ApiClient } from './client'; +import { AUTH_CONFIG } from './auth/auth-config'; + +export const apiClient = new ApiClient({ + mode: 'api-key', + apiKey: process.env.API_KEY, +}); \ No newline at end of file