:Qrge branch 'jskim-node' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node

This commit is contained in:
kmh
2026-03-10 16:16:52 +09:00
parent 5abce62d89
commit 6d2cdc1782
8 changed files with 267 additions and 143 deletions

View File

@@ -437,12 +437,14 @@ export function TableSearchWidget({ component, screenId, onHeightChange }: Table
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [currentTable?.tableName, filterMode, screenId, currentTableTabId, JSON.stringify(presetFilters)]);
// select 옵션 로드 (데이터 변경 시 빈 옵션 재조회)
// select 옵션 로드 (getColumnUniqueValues 변경 시 재로드 - columnMeta 갱신 반영)
useEffect(() => {
if (!currentTable?.getColumnUniqueValues || activeFilters.length === 0) {
return;
}
let cancelled = false;
const loadSelectOptions = async () => {
const selectFilters = activeFilters.filter((f) => f.filterType === "select");
@@ -465,21 +467,14 @@ export function TableSearchWidget({ component, screenId, onHeightChange }: Table
}
}
if (hasNewOptions) {
setSelectOptions((prev) => {
// 이미 로드된 옵션은 유지, 새로 로드된 옵션만 병합
const merged = { ...prev };
for (const [key, value] of Object.entries(loadedOptions)) {
if (!merged[key] || merged[key].length === 0) {
merged[key] = value;
}
}
return merged;
});
if (!cancelled && hasNewOptions) {
setSelectOptions((prev) => ({ ...prev, ...loadedOptions }));
}
};
loadSelectOptions();
return () => { cancelled = true; };
}, [activeFilters, currentTable?.tableName, currentTable?.getColumnUniqueValues, currentTable?.dataCount]);
// 높이 변화 감지 및 알림 (실제 화면에서만)