Merge branch 'jskim-node' of https://g.wace.me/jskim/vexplor_dev into jskim-node

; Conflicts:
;	frontend/app/(main)/COMPANY_16/outsourcing/subcontractor/page.tsx
This commit is contained in:
DDD1542
2026-04-03 16:01:54 +09:00
7 changed files with 458 additions and 188 deletions
+11 -6
View File
@@ -34,14 +34,16 @@ export function useTableSettings<T extends { key: string }>(
settingsId: string,
tableName: string,
defaultColumns: T[],
/** 초기 표시 컬럼 키 (미지정 시 defaultColumns 전체) */
initialVisibleKeys?: string[],
) {
const [open, setOpen] = useState(false);
const [visibleKeys, setVisibleKeys] = useState<Set<string>>(
() => new Set(defaultColumns.map((c) => c.key)),
() => new Set(initialVisibleKeys || defaultColumns.map((c) => c.key)),
);
const [columnWidths, setColumnWidths] = useState<Record<string, number>>({});
const [orderedKeys, setOrderedKeys] = useState<string[]>(
() => defaultColumns.map((c) => c.key),
() => initialVisibleKeys || defaultColumns.map((c) => c.key),
);
const [baseFilter, setBaseFilter] = useState<BaseFilter | undefined>();
@@ -72,9 +74,12 @@ export function useTableSettings<T extends { key: string }>(
}
}
// settings에 없는 새 컬럼은 보이도록 추가
// settings에 없는 새 컬럼은 초기 표시 목록에 있을 때만 보이도록 추가
const initKeys = initialVisibleKeys
? new Set(initialVisibleKeys)
: new Set(defaultColumns.map((c) => c.key));
for (const col of defaultColumns) {
if (!settings.columns.find((c) => c.columnName === col.key)) {
if (!settings.columns.find((c) => c.columnName === col.key) && initKeys.has(col.key)) {
visible.add(col.key);
order.push(col.key);
}
@@ -92,7 +97,7 @@ export function useTableSettings<T extends { key: string }>(
// 기본 데이터 필터
setBaseFilter(settings.baseFilter);
},
[defaultColumns],
[defaultColumns, initialVisibleKeys],
);
// 마운트 시 저장된 설정 복원
@@ -167,6 +172,6 @@ export function useTableSettings<T extends { key: string }>(
/** 기본 데이터 필터 (예: division = '판매') */
baseFilter,
/** GRID_COLUMNS 기본 컬럼 키 목록 (TableSettingsModal defaultVisibleKeys용) */
defaultVisibleKeys: defaultColumns.map((c) => c.key),
defaultVisibleKeys: initialVisibleKeys || defaultColumns.map((c) => c.key),
};
}