diff --git a/src/components/pricing/actions.ts b/src/components/pricing/actions.ts index 9c22bb7b..c747d8a7 100644 --- a/src/components/pricing/actions.ts +++ b/src/components/pricing/actions.ts @@ -88,14 +88,15 @@ interface PriceApiData { * API 데이터 → 프론트엔드 타입 변환 */ function transformApiToFrontend(apiData: PriceApiData): PricingData { + const item = (apiData as unknown as Record).item as Record | undefined; const product = apiData.product; const material = apiData.material; - const itemCode = product?.product_code || material?.item_code || `ITEM-${apiData.item_id}`; - const itemName = product?.product_name || material?.item_name || '품목명 없음'; + const itemCode = (item?.code as string) || product?.product_code || material?.item_code || `ITEM-${apiData.item_id}`; + const itemName = (item?.name as string) || product?.product_name || material?.item_name || '품목명 없음'; const specification = product?.specification || material?.specification || undefined; const unit = product?.unit || material?.unit || 'EA'; - const itemType = product?.product_type || material?.product_type || 'PT'; + const itemType = (item?.item_category as string) || product?.product_type || material?.product_type || 'PT'; // 리비전 변환 const revisions = apiData.revisions?.map((rev) => ({ diff --git a/src/components/production/WorkerScreen/index.tsx b/src/components/production/WorkerScreen/index.tsx index f09ae389..c10a32db 100644 --- a/src/components/production/WorkerScreen/index.tsx +++ b/src/components/production/WorkerScreen/index.tsx @@ -280,12 +280,15 @@ export default function WorkerScreen() { return processListCache.filter((p) => p.status === '사용중'); }, [processListCache]); - // 공정 목록 로드 후 첫 번째 공정을 기본 선택 + // 공정 목록 로드 후 첫 번째 공정을 기본 선택 (폴백: 'screen') useEffect(() => { - if (processTabs.length > 0 && !activeTab) { + if (activeTab) return; + if (processTabs.length > 0) { setActiveTab(processTabs[0].id); + } else if (!isLoading) { + setActiveTab('screen'); } - }, [processTabs, activeTab]); + }, [processTabs, activeTab, isLoading]); // 선택된 공정의 ProcessTab 키 (mock 데이터 및 기존 로직 호환용) const activeProcessTabKey: ProcessTab = useMemo(() => {