fix: 선택항목 상세입력 컴포넌트 입력 시 포커스 유지 개선
- 입력 중 onFormDataChange 호출 제거하여 불필요한 리렌더링 방지 - 저장 버튼 클릭 시에만 데이터 전달하도록 변경 (beforeFormSave 이벤트) - handleSave에서 beforeFormSave 이벤트 발생 및 100ms 대기 - 원본 데이터 표시 버그 수정 (modalData 중첩 구조 처리) - fieldGroups 구조 감지 로직 수정 (details → fieldGroups) 이제 사용자가 타이핑할 때 포커스가 유지됩니다.
This commit is contained in:
@@ -200,10 +200,16 @@ export class ButtonActionExecutor {
|
||||
|
||||
console.log("💾 [handleSave] 저장 시작:", { formData, tableName, screenId });
|
||||
|
||||
// 🆕 SelectedItemsDetailInput 배치 저장 처리 (새로운 데이터 구조)
|
||||
const selectedItemsKeys = Object.keys(formData).filter(key => {
|
||||
const value = formData[key];
|
||||
return Array.isArray(value) && value.length > 0 && value[0]?.originalData && value[0]?.details;
|
||||
// 🆕 저장 전 이벤트 발생 (SelectedItemsDetailInput 등에서 최신 데이터 수집)
|
||||
window.dispatchEvent(new CustomEvent("beforeFormSave"));
|
||||
|
||||
// 약간의 대기 시간을 주어 이벤트 핸들러가 formData를 업데이트할 수 있도록 함
|
||||
await new Promise(resolve => setTimeout(resolve, 100));
|
||||
|
||||
// 🆕 SelectedItemsDetailInput 배치 저장 처리 (fieldGroups 구조)
|
||||
const selectedItemsKeys = Object.keys(context.formData).filter(key => {
|
||||
const value = context.formData[key];
|
||||
return Array.isArray(value) && value.length > 0 && value[0]?.originalData && value[0]?.fieldGroups;
|
||||
});
|
||||
|
||||
if (selectedItemsKeys.length > 0) {
|
||||
|
||||
Reference in New Issue
Block a user