diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-11-04 07:48:00 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-11-04 07:48:00 +0000 |
| commit | 680da9b323db8b8d7cf27c674ab0016ec87bfe81 (patch) | |
| tree | 52791f8618c0c5767c6420404ddf849ae28082e8 /lib/rfq-last/table/rfq-table.tsx | |
| parent | 153502b67da990c92973f1f8af416f9a81ec3abb (diff) | |
(임수민) 구매 점검 테스트 요청사항 수정 (11/02)
Diffstat (limited to 'lib/rfq-last/table/rfq-table.tsx')
| -rw-r--r-- | lib/rfq-last/table/rfq-table.tsx | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/lib/rfq-last/table/rfq-table.tsx b/lib/rfq-last/table/rfq-table.tsx index 9f78f578..162dd343 100644 --- a/lib/rfq-last/table/rfq-table.tsx +++ b/lib/rfq-last/table/rfq-table.tsx @@ -215,6 +215,9 @@ export function RfqTable({ expandedRows: [] }), [getSearchParam, parseSearchParam]); + // 탭별로 독립적인 tableId 사용 (정렬 상태 분리) + const tableId = React.useMemo(() => `rfq-table-${rfqCategory}`, [rfqCategory]); + const { presets, activePresetId, @@ -227,7 +230,7 @@ export function RfqTable({ setDefaultPreset, renamePreset, getCurrentSettings, - } = useTablePresets<RfqsLastView>('rfq-table', initialSettings); + } = useTablePresets<RfqsLastView>(tableId, initialSettings); // 컬럼 정의 const columns = React.useMemo(() => { @@ -305,11 +308,25 @@ export function RfqTable({ const currentSettings = React.useMemo(() => getCurrentSettings(), [getCurrentSettings]); - const initialState = React.useMemo(() => ({ - sorting: initialSettings.sort.filter((s: any) => columns.some((c: any) => ("accessorKey" in c ? c.accessorKey : c.id) === s.id)), - columnVisibility: currentSettings.columnVisibility, - columnPinning: currentSettings.pinnedColumns, - }), [columns, currentSettings, initialSettings.sort]); + // 탭별로 독립적인 정렬 상태 관리 + // rfqCategory가 변경되면 정렬 상태를 재계산하여 탭 간 정렬 충돌 방지 + const initialState = React.useMemo(() => { + // 현재 탭의 컬럼에 존재하는 정렬만 유효한 것으로 필터링 + const validSorting = initialSettings.sort.filter((s: any) => + columns.some((c: any) => ("accessorKey" in c ? c.accessorKey : c.id) === s.id) + ); + + // 유효한 정렬이 없으면 기본 정렬 사용 + const sorting = validSorting.length > 0 + ? validSorting + : [{ id: "createdAt", desc: true }]; + + return { + sorting, + columnVisibility: currentSettings.columnVisibility, + columnPinning: currentSettings.pinnedColumns, + }; + }, [columns, currentSettings, initialSettings.sort, rfqCategory]); const { table } = useDataTable({ data: tableData.data, |
