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:
@@ -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),
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user