fix: [작업자화면] 생산일자/부서/담당자 변경 시 이전 값으로 복원되는 버그 수정
- useEffect 의존성에서 filteredWorkOrders 제거 - prevSidebarOrderIdRef로 작업지시 변경 시에만 세팅 (사용자 수정값 보존) - 같은 작업지시 선택 상태에서 onChange 값이 덮어쓰이지 않음
This commit is contained in:
@@ -20,7 +20,7 @@ function extractLengthFromName(name?: string | null): number {
|
||||
return m ? parseInt(m[1], 10) : 0;
|
||||
}
|
||||
|
||||
import { useState, useMemo, useCallback, useEffect } from 'react';
|
||||
import { useState, useMemo, useCallback, useEffect, useRef } from 'react';
|
||||
import dynamic from 'next/dynamic';
|
||||
import { useSearchParams, useRouter, usePathname } from 'next/navigation';
|
||||
import { useSidebarCollapsed } from '@/stores/menuStore';
|
||||
@@ -863,8 +863,13 @@ export default function WorkerScreen() {
|
||||
|
||||
}, [selectedSidebarOrderId, workItems.length]);
|
||||
|
||||
// ===== 작업지시 변경 시 작업 정보 자동 세팅 =====
|
||||
// ===== 작업지시 변경 시 작업 정보 자동 세팅 (선택 변경 시에만) =====
|
||||
const prevSidebarOrderIdRef = useRef<string | null>(null);
|
||||
useEffect(() => {
|
||||
// 같은 작업지시를 다시 선택한 경우 덮어쓰지 않음 (사용자 수정값 보존)
|
||||
if (prevSidebarOrderIdRef.current === selectedSidebarOrderId) return;
|
||||
prevSidebarOrderIdRef.current = selectedSidebarOrderId;
|
||||
|
||||
const apiOrder = filteredWorkOrders.find((wo) => wo.id === selectedSidebarOrderId);
|
||||
if (apiOrder) {
|
||||
// 부서 세팅: 1순위 work_orders.team_id → 2순위 process.department(부서명 매칭)
|
||||
@@ -885,8 +890,8 @@ export default function WorkerScreen() {
|
||||
setProductionManagerId('');
|
||||
setProductionDate('');
|
||||
}
|
||||
|
||||
}, [selectedSidebarOrderId, filteredWorkOrders, departmentList]);
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [selectedSidebarOrderId]);
|
||||
|
||||
// ===== 수주 정보 (사이드바 선택 항목 기반) =====
|
||||
const orderInfo = useMemo(() => {
|
||||
|
||||
Reference in New Issue
Block a user