- 견적 V2 API 연동 변경 이력 (4개 파일) - 입고관리 분석 계획 - 재고 통합 계획 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2.3 KiB
2.3 KiB
변경 내용 요약
날짜: 2026-01-26 작업자: Claude Code 관련 계획: docs/plans/quote-management-url-migration-plan.md (Phase 1 버그 수정)
📋 변경 개요
V2 견적 등록 컴포넌트에서 작성자 필드가 "드미트리"로 하드코딩된 버그 수정
📁 수정된 파일
react/src/components/quotes/QuoteRegistrationV2.tsx- 로그인 사용자 정보 연동
🔧 상세 변경 사항
1. Import 추가
import { useAuth } from "@/contexts/AuthContext";
2. INITIAL_FORM_DATA 수정
변경 전:
const INITIAL_FORM_DATA: QuoteFormDataV2 = {
registrationDate: new Date().toISOString().split("T")[0],
writer: "드미트리", // TODO: 로그인 사용자 정보
// ...
};
변경 후:
const INITIAL_FORM_DATA: QuoteFormDataV2 = {
registrationDate: new Date().toISOString().split("T")[0],
writer: "", // useAuth()에서 currentUser.name으로 설정됨
// ...
};
3. useAuth 훅 사용
export function QuoteRegistrationV2({ ... }) {
// 인증 정보
const { currentUser } = useAuth();
// 상태 초기화 시 currentUser.name 사용
const [formData, setFormData] = useState<QuoteFormDataV2>(() => {
const data = initialData || INITIAL_FORM_DATA;
// create 모드에서 writer가 비어있으면 현재 사용자명으로 설정
if (mode === "create" && !data.writer && currentUser?.name) {
return { ...data, writer: currentUser.name };
}
return data;
});
// ...
}
4. useEffect로 지연 로딩 처리
// 작성자 자동 설정 (create 모드에서 currentUser 로드 시)
useEffect(() => {
if (mode === "create" && !formData.writer && currentUser?.name) {
setFormData((prev) => ({ ...prev, writer: currentUser.name }));
}
}, [mode, currentUser?.name, formData.writer]);
✅ 동작 방식
- 초기 렌더링: useState 초기화 시 currentUser.name 사용
- 지연 로딩: currentUser가 나중에 로드되면 useEffect로 writer 업데이트
- edit/view 모드: initialData의 writer 값 유지 (덮어쓰지 않음)
🔗 관련 문서
- 계획 문서:
docs/plans/quote-management-url-migration-plan.md - AuthContext:
react/src/contexts/AuthContext.tsx